-
Notifications
You must be signed in to change notification settings - Fork 254
Blog post to introduce the Temporal Swift SDK #1221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Youtube link is up if you want to link to it |
Co-authored-by: Dave Lester <[email protected]>
Co-authored-by: Dave Lester <[email protected]>
|
|
||
| Building reliable distributed systems requires handling failures gracefully, coordinating complex workflows across multiple services, and ensuring long-running processes complete successfully. Rather than develop these resiliency features into every application or service you develop, Temporal offers the pattern of a __workflow__. Workflows encapsulate your code so it runs durably and handles many common failure scenarios. | ||
|
|
||
| With the Temporal Swift SDK, you can build resilient workflows that survive infrastructure failures. The SDK brings another essential tool for developers that build highly reliable and scalable production cloud services. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| With the Temporal Swift SDK, you can build resilient workflows that survive infrastructure failures. The SDK brings another essential tool for developers that build highly reliable and scalable production cloud services. | |
| The SDK brings an essential tool for Swift developers building highly reliable and scalable production cloud services. |
|
|
||
| ## Writing durable workflows in Swift | ||
|
|
||
| The Temporal Swift SDK enables developers to write reliable and durable workflows. Previously, Swift developers had to resort to more traditional approaches for building fault-tolerant workflows, such as implementing custom state machines on top of database systems or message queuing services, solutions that often required significant boilerplate code and careful handling of edge cases that Temporal manages automatically. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The Temporal Swift SDK enables developers to write reliable and durable workflows. Previously, Swift developers had to resort to more traditional approaches for building fault-tolerant workflows, such as implementing custom state machines on top of database systems or message queuing services, solutions that often required significant boilerplate code and careful handling of edge cases that Temporal manages automatically. | |
| Durable workflows run to completion even when infrastructure fails. If your server crashes mid-execution, Temporal automatically resumes the workflow from where it left off with no lost state or manual intervention required. By bringing this capability to the Swift ecosystem, developers can focus on application logic while Temporal handles state management, retries, and recovery. |
| - Leveraging Swift's strong type system to catch errors at build time rather than runtime. | ||
| - Providing macros to reduce boilerplate when authoring workflows. | ||
|
|
||
| The design and implementation of the Temporal Swift SDK has been informed and validated by multiple production use-cases, ensuring that the SDK meets real-world requirements for performance, reliability, and developer experience. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The design and implementation of the Temporal Swift SDK has been informed and validated by multiple production use-cases, ensuring that the SDK meets real-world requirements for performance, reliability, and developer experience. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may be worth removing this paragraph.
| - Providing macros to reduce boilerplate when authoring workflows. | ||
|
|
||
| The design and implementation of the Temporal Swift SDK has been informed and validated by multiple production use-cases, ensuring that the SDK meets real-world requirements for performance, reliability, and developer experience. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Delete newline if the paragraph above is also delete.
|
|
||
| The design and implementation of the Temporal Swift SDK has been informed and validated by multiple production use-cases, ensuring that the SDK meets real-world requirements for performance, reliability, and developer experience. | ||
|
|
||
| The Temporal Swift SDK can be used across a wide range of real-world scenarios where reliability and coordination are paramount, including: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The Temporal Swift SDK can be used across a wide range of real-world scenarios where reliability and coordination are paramount, including: | |
| Temporal workflows are particularly valuable for handling multi-step coordination in applications that must survive failures, such as data pipelines, business automation, payment processing, and operational tasks. |
| The design and implementation of the Temporal Swift SDK has been informed and validated by multiple production use-cases, ensuring that the SDK meets real-world requirements for performance, reliability, and developer experience. | ||
|
|
||
| The Temporal Swift SDK can be used across a wide range of real-world scenarios where reliability and coordination are paramount, including: | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
|
||
| The Temporal Swift SDK can be used across a wide range of real-world scenarios where reliability and coordination are paramount, including: | ||
|
|
||
| - E-commerce and payment processing where multi-step payment processing requires automatic retry and rollback capabilities. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - E-commerce and payment processing where multi-step payment processing requires automatic retry and rollback capabilities. |
| The Temporal Swift SDK can be used across a wide range of real-world scenarios where reliability and coordination are paramount, including: | ||
|
|
||
| - E-commerce and payment processing where multi-step payment processing requires automatic retry and rollback capabilities. | ||
| - Data processing & ETL where you may be performing large-scale data transformation pipelines. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Data processing & ETL where you may be performing large-scale data transformation pipelines. |
|
|
||
| - E-commerce and payment processing where multi-step payment processing requires automatic retry and rollback capabilities. | ||
| - Data processing & ETL where you may be performing large-scale data transformation pipelines. | ||
| - Business process automation with approval workflows and human-in-the-loop interactions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Business process automation with approval workflows and human-in-the-loop interactions. |
| - E-commerce and payment processing where multi-step payment processing requires automatic retry and rollback capabilities. | ||
| - Data processing & ETL where you may be performing large-scale data transformation pipelines. | ||
| - Business process automation with approval workflows and human-in-the-loop interactions. | ||
| - Monitoring and operations with scheduled maintenance and cleanup tasks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Monitoring and operations with scheduled maintenance and cleanup tasks. |
|
|
||
| [Temporal](https://temporal.io) is an open source platform for building reliable distributed applications. At its core is the concept of durable execution, your code runs to completion even in the face of infrastructure failures. When a worker crashes or restarts, Temporal automatically resumes your workflow from where it left off, without requiring you to write complex retry logic or state management code. This is achieved through Temporal's architecture, which separates workflow orchestration from actual work execution: | ||
|
|
||
| - **Workflows** define the overall business logic and coordination. They describe the sequence of steps, decision points, and error handling for a process. Workflows must be deterministic given the same inputs and history, they must always make the same decisions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - **Workflows** define the overall business logic and coordination. They describe the sequence of steps, decision points, and error handling for a process. Workflows must be deterministic given the same inputs and history, they must always make the same decisions. | |
| - **Workflows** define the overall business logic and coordination. They describe the sequence of steps, decision points, and error handling for a process. Workflows must be deterministic. Given the same inputs and history, they must always make the same decisions. |
|
|
||
| Modern distributed systems face common challenges: coordinating multiple services, handling partial failures, ensuring consistency across operations, and managing long-running processes. Traditional approaches require building custom retry logic, state machines, and coordination mechanisms. Temporal provides a platform that handles these concerns, allowing you to focus on your business logic. | ||
|
|
||
| Temporal has also published a [blog post](https://temporal.io/blog/announcing-the-swift-temporal-sdk) detailing the introduction of the Temporal Swift SDK highlighting the unique advantages this brings to Swift developers building distributed systems. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Temporal has also published a [blog post](https://temporal.io/blog/announcing-the-swift-temporal-sdk) detailing the introduction of the Temporal Swift SDK highlighting the unique advantages this brings to Swift developers building distributed systems. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moving to Getting Started section
| Modern distributed systems face common challenges: coordinating multiple services, handling partial failures, ensuring consistency across operations, and managing long-running processes. Traditional approaches require building custom retry logic, state machines, and coordination mechanisms. Temporal provides a platform that handles these concerns, allowing you to focus on your business logic. | ||
|
|
||
| Temporal has also published a [blog post](https://temporal.io/blog/announcing-the-swift-temporal-sdk) detailing the introduction of the Temporal Swift SDK highlighting the unique advantages this brings to Swift developers building distributed systems. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
|
||
| ## Getting started | ||
|
|
||
| To get started with the Temporal Swift SDK, explore its [documentation](https://swiftpackageindex.com/apple/swift-temporal-sdk/main/documentation/temporal) which provides detailed guides for implementing workflows and activities. The repository also includes a rich collection of [example projects](https://github.com/apple/swift-temporal-sdk/tree/main/Examples), demonstrating the SDK's capabilities across different use cases from simple task orchestration to complex multi-step business processes. For a deeper understanding of Temporal's core concepts and architectural patterns, be sure to check out the [general Temporal documentation](https://docs.temporal.io/), which provides valuable context for building robust distributed systems. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| To get started with the Temporal Swift SDK, explore its [documentation](https://swiftpackageindex.com/apple/swift-temporal-sdk/main/documentation/temporal) which provides detailed guides for implementing workflows and activities. The repository also includes a rich collection of [example projects](https://github.com/apple/swift-temporal-sdk/tree/main/Examples), demonstrating the SDK's capabilities across different use cases from simple task orchestration to complex multi-step business processes. For a deeper understanding of Temporal's core concepts and architectural patterns, be sure to check out the [general Temporal documentation](https://docs.temporal.io/), which provides valuable context for building robust distributed systems. | |
| To get started with the Temporal Swift SDK, explore its [documentation](https://swiftpackageindex.com/apple/swift-temporal-sdk/main/documentation/temporal) which provides detailed guides for implementing workflows and activities. The repository also includes a rich collection of [example projects](https://github.com/apple/swift-temporal-sdk/tree/main/Examples), demonstrating the SDK's capabilities across different use cases from simple task orchestration to complex multi-step business processes. | |
| For a deeper understanding of Temporal's core concepts and architectural patterns, check out the [general Temporal documentation](https://docs.temporal.io/), which provides valuable context for building robust distributed systems. Temporal published a [blog post](https://temporal.io/blog/announcing-the-swift-temporal-sdk) highlighting the advantages the SDK brings to Swift developers building distributed systems. |
|
|
||
| ## Community and feedback | ||
|
|
||
| Temporal Swift SDK is an open source project and we're eager to hear from the Swift community. Whether you're building microservices, coordinating long-running processes, or simply curious about durable execution, we'd love to know how the Temporal Swift SDK works for you. The SDK provides a powerful foundation for building reliable distributed systems in Swift. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Temporal Swift SDK is an open source project and we're eager to hear from the Swift community. Whether you're building microservices, coordinating long-running processes, or simply curious about durable execution, we'd love to know how the Temporal Swift SDK works for you. The SDK provides a powerful foundation for building reliable distributed systems in Swift. | |
| Temporal Swift SDK is an open source project and we're eager to hear from the Swift community. Whether you're building microservices, coordinating long-running processes, or simply curious about durable execution, we'd love to know how the Temporal Swift SDK works for you. |
|
|
||
| The project is actively developed and we welcome contributions, bug reports, and feature requests. As with any distributed systems tool, different applications and environments present unique challenges, and community feedback is essential for improving the SDK's effectiveness across diverse Swift codebases. | ||
|
|
||
| Ready to start building reliable distributed systems? Visit the [Temporal Swift SDK repository](https://github.com/apple/swift-temporal-sdk) to get started. No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Ready to start building reliable distributed systems? Visit the [Temporal Swift SDK repository](https://github.com/apple/swift-temporal-sdk) to get started. |
| Temporal Swift SDK is an open source project and we're eager to hear from the Swift community. Whether you're building microservices, coordinating long-running processes, or simply curious about durable execution, we'd love to know how the Temporal Swift SDK works for you. The SDK provides a powerful foundation for building reliable distributed systems in Swift. | ||
|
|
||
| The project is actively developed and we welcome contributions, bug reports, and feature requests. As with any distributed systems tool, different applications and environments present unique challenges, and community feedback is essential for improving the SDK's effectiveness across diverse Swift codebases. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
|
||
| Temporal Swift SDK is an open source project and we're eager to hear from the Swift community. Whether you're building microservices, coordinating long-running processes, or simply curious about durable execution, we'd love to know how the Temporal Swift SDK works for you. The SDK provides a powerful foundation for building reliable distributed systems in Swift. | ||
|
|
||
| The project is actively developed and we welcome contributions, bug reports, and feature requests. As with any distributed systems tool, different applications and environments present unique challenges, and community feedback is essential for improving the SDK's effectiveness across diverse Swift codebases. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The project is actively developed and we welcome contributions, bug reports, and feature requests. As with any distributed systems tool, different applications and environments present unique challenges, and community feedback is essential for improving the SDK's effectiveness across diverse Swift codebases. | |
| The project is actively developed and we welcome contributions, bug reports, and feature requests. Ready to start building reliable distributed systems? Visit the [Temporal Swift SDK repository](https://github.com/apple/swift-temporal-sdk) to get started. |
No description provided.