Temporal SDK для Swift теперь доступен как проект с открытым исходным кодом.
Создание надежных распределенных систем требует корректной обработки сбоев, координации сложных действий между несколькими сервисами и обеспечения успешного завершения длительных процессов. Альтернативный подход заключается в использовании рабочих потоков (workflows) вместо того, чтобы внедрять эти функции обеспечения устойчивости в каждое разрабатываемое приложение или сервис. Рабочие потоки инкапсулируют ваш код, обеспечивая его надежную работу и обработку множества распространенных сценариев сбоев.
Temporal широко используется для оркестровки рабочих процессов на многих языках программирования. С выпуском этого SDK, Temporal теперь доступен разработчикам на Swift, создающим продакшен облачные сервисы.
Написание надежных рабочих потоков на Swift
Надежные рабочие потоки выполняются до завершения даже при сбое инфраструктуры. Если ваш сервер выходит из строя во время выполнения, Temporal автоматически возобновляет рабочий процесс с места остановки без потери состояния или необходимости ручного вмешательства. Благодаря этой возможности в экосистеме Swift разработчики могут сосредоточиться на логике приложения, в то время как Temporal отвечает за управление состоянием, повторные попытки и восстановление.
SDK обеспечивает удобный интерфейс для разработчиков Swift благодаря:
- использованию знакомых шаблонов async/await и структурированного параллелизма для создания поддерживаемого кода рабочих процессов;
- использованию строгой системы типов Swift для выявления ошибок во время сборки, а не во время выполнения;
- предоставлению макросов для сокращения количества шаблонного кода при разработке рабочих потоков.
Рабочие потоки Temporal особенно ценны для многоэтапной координации в приложениях, которые должны выдерживать сбои, таких как конвейеры данных, автоматизация бизнеса, обработка платежей и операционные задачи.
Что такое Temporal и почему это важно?
Temporal — это платформа с открытым исходным кодом для создания надежных распределенных приложений. В ее основе лежит концепция надежного выполнения: ваш код выполняется до завершения даже при сбоях инфраструктуры. При сбое или перезапуске рабочего потока Temporal автоматически возобновляет рабочий процесс с того места, где он был прерван, не требуя от вас написания сложной логики повторных попыток или кода управления состоянием. Это достигается благодаря архитектуре Temporal, которая отделяет оркестровку рабочих процессов от фактического выполнения работы:
- Рабочие потоки (Workflows) определяют общую бизнес-логику и координацию. Они описывают последовательность шагов, точек принятия решений и обработку ошибок для процесса. Рабочие потоки должны быть детерминированными. При одинаковых входных данных и истории они всегда должны принимать одинаковые решения.
- Действия (Activities) выполняют фактическую работу, такую как вызов внешних API, обработка данных или взаимодействие с базами данных. Действия должны быть идемпотентными, то есть их можно безопасно повторять без возникновения непреднамеренных побочных эффектов.
Современные распределенные системы сталкиваются с распространёнными проблемами: координацией нескольких сервисов, обработкой частичных сбоев, обеспечением согласованности операций и управлением длительными процессами. Традиционные подходы требуют разработки собственной логики повторных попыток, конечных автоматов и механизмов координации. Temporal предоставляет платформу, которая решает эти проблемы, позволяя вам сосредоточиться на бизнес-логике.
Начало работы
Чтобы начать работу с Temporal Swift SDK, изучите его документацию, которая содержит подробные руководства по реализации рабочих потоков и действий. Репозиторий также включает в себя богатую коллекцию примеров проектов, демонстрирующих возможности SDK в различных сценариях использования: от простой оркестровки задач до сложных многоэтапных бизнес-процессов.
Для более глубокого понимания основных концепций и архитектурных шаблонов Temporal ознакомьтесь с общей документацией Temporal, которая предоставляет ценную информацию для создания надежных распределенных систем. Видеопрезентацию можно посмотреть в этой презентации с конференции Server-Side Swift 2025, где был анонсирован проект.