Временной рабочий процесс против рабочего процесса Cadence

Как temporal.io связано с cadenceworkflow.io? Что следует использовать при запуске нового проекта в зависимости от службы рабочего процесса каденции?

3 ответа

Решение

Отказ от ответственности: я являюсь соучредителем и техническим руководителем проекта Cadence, а в настоящее время соучредителем / генеральным директором Temporal Technologies.

https://www.temporal.io/ - это вилка проекта Cadence, созданная первоначальными основателями и техническими руководителями проекта Cadence Максимом Фатеевым и Самаром Аббасом. Мы запустили Temporal Technologies и получили финансирование венчурного капитала, поскольку считаем, что модель программирования, которую мы впервые внедрили с помощью AWS Simple Workflow, Durable Task Framework и проекта Cadence, имеет потенциал, который выходит далеко за рамки одной компании. Наличие коммерческого предприятия для продвижения проекта имеет важное значение для его долговечности.

Форк temporal.io обладает всеми функциями Cadence, поскольку постоянно сливается с ним. Он также реализовал несколько новых функций.

Вот некоторые из технических различий между Cadence и Temporal с момента первоначального выпуска вилки Temporal (ожидается, что статус производства будет достигнут 05/2020).

Все бережливые конструкции заменены на протобуфовые.

Все публичные API Cadence полагаются на Thrift. Бережливые объекты также хранятся в БД в сериализованном виде.

Temporal преобразовал все эти структуры в буферы протокола. Сюда входят объекты, хранящиеся в БД.

Протокол связи переключен с TChannel на gRPC

Cadence полагается на TChannel, протокол мультиплексирования на основе TCP, разработанный в Uber. TChannel имеет множество ограничений, таких как отсутствие поддержки безопасности и очень ограниченное количество языковых привязок. По сути, он устарел даже в Uber.

Temporal использует gRPC для всего межпроцессного взаимодействия.

Поддержка TLS

Cadence не поддерживает безопасность связи, поскольку это ограничение TChannel.

Temporal поддерживает взаимный TLS и в будущем будет поддерживать более продвинутые функции аутентификации и авторизации.

Упрощенная конфигурация

Temporal переработала конфигурацию сервиса. Некоторые из наиболее запутанных частей удалены. Например, отпадает необходимость настраивать начальные числа членства. Временно каждый хост при запуске регистрируется в базе данных и использует список из базы данных как начальный список.

Выпускные трубопроводы

Cadence не тестирует какие-либо публично выпущенные артефакты, включая образы докеров, поскольку его внутренний конвейер выпуска обеспечивает только качество внутренних артефактов. Он также не выполняет тестирование версии для зависимостей, которые не используются в Uber. Например, интеграция MySQL не тестируется за исключением довольно неполных модульных тестов. То же самое относится к CLI и другим компонентам.

Temporal вкладывает большие средства в процесс релиза. Все артефакты, включая полностью поддерживаемую матрицу зависимостей, будут подвергнуты процессу полного выпуска, который будет включать многодневные стрессовые прогоны.

Другой важной частью процесса выпуска является возможность создавать исправления для производственных проблем. Возможность гарантировать качество таких патчей и своевременно создавать все необходимые артефакты важна для любого, кто запускает Temporal в производственной среде.

Go SDK

Temporal реализовала следующие улучшения по сравнению с клиентом Cadence Go:

  • Протобуф и gRPC
  • Нет глобальной регистрации действий и типов рабочих процессов
  • Возможность зарегистрировать экземпляр структуры активности у воркера. Это значительно упрощает передачу внешних зависимостей действиям.
  • Перехватчики рабочего процесса и активности, которые позволяют реализовать такие функции, как настройка тайм-аутов через внешние файлы конфигурации.
  • Имена типов действий и рабочих процессов не включают имена пакетов. Это значительно упрощает рефакторинг кода без нарушения изменений.
  • Большинство тайм-аутов, которые требовались Cadence, теперь необязательны.
  • workflow.Await метод

Java SDK

Temporal реализовала следующие улучшения по сравнению с Java-клиентом Cadence:

  • Аннотации рабочих процессов и действий, позволяющие объектам реализации действий и рабочих процессов реализовывать интерфейсы, не относящиеся к рабочим процессам и действиям. Это важно для хорошей игры с фреймворками АОП, такими как Spring.
  • Полиморфные интерфейсы рабочего процесса и активности. Это позволяет иметь общий интерфейс для нескольких типов действий и рабочих процессов.
  • Динамическая регистрация обработчиков сигналов и запросов.
  • Перехватчики рабочего процесса и активности, которые позволяют реализовать такие функции, как настройка тайм-аутов через внешние файлы конфигурации.
  • Улучшено создание имен типов действий и рабочих процессов.

У нас запланировано много других функций и клиентских SDK для других языков. Вы можете найти нас на форуме Temporal Community Forum.

Мое личное мнение, не от Uber, а просто как стороннего участника проекта Cadence.

Очень жаль, что проект разделен на два, включая комьюнити. Temporal - отличный проект / команда / компания. Желаю Temporal больших успехов.

Иногда для мира полезно иметь конкуренцию. Дело в том, что оба находятся в активной разработке. Вы можете увидеть, что у них разные цели, если взглянуть на их дорожные карты. Эти два проекта разделяют общее видение, позволяющее каждому переосмыслить модели программирования долгосрочного бизнеса.

Я понимаю, что на данный момент довольно сложно сказать, какая из них лучше, потому что темпорал только что разветвился от Cadence. Но со временем проекты разойдутся, и в конечном итоге ответ будет более ясным, например, MySQL/MariaDB или Cassandra/Scylladb, или даже версия сообщества / коммерческая версия MongoDB.

Я лично склоняюсь к Cadence из-за поддержки со стороны команды Cadence, и большинство участников Cadence все еще здесь, и я всегда верю в отличную командную работу членов команды Cadence. А также, очевидно, потому что я провожу там больше времени.

Я из команды Cadence в Uber, и я хотел сообщить вам, что Cadence продолжает активно развиваться нашей командой. Ниже приведен раздел обновления, которым мы недавно поделились с сообществом Cadence:

Мы хотим подтвердить, что команда Uber Cadence привержена развитию и развитию проекта Cadence с открытым исходным кодом. Сегодня Cadence поддерживает более 100 различных вариантов использования в Uber, и это число быстро растет. В совокупности в среднем в любой момент выполняется более 50 млн текущих исполнений, а наши клиенты завершают более 3 млрд исполнений в месяц. Помимо Uber, мы также знаем, что многие инженерные команды в различных компаниях уже внедрили Cadence в свои критически важные для бизнеса рабочие процессы. Мы рады продолжить развитие Cadence как проекта с открытым исходным кодом с обратной совместимостью с повышенным вниманием к надежности, масштабируемости и ремонтопригодности в ближайшем будущем.

Сравнивать Cadence и Temporal, наверное, еще рано. Тем не менее, у меня есть несколько идей относительно того, как мы можем систематически проливать свет на дорожную карту Cadence, чтобы обеспечить наличие всей необходимой информации, позволяющей проводить такие сравнения в будущем. Я дополню этот пост ссылками, когда мы создадим страницу с информацией о дорожной карте.

А пока дайте мне знать, если вам понадобится дополнительная информация о Cadence, которая будет полезна в этом контексте.

Temporal.io - это компания, которая разветвила проект каденции и теперь строит его поверх, называя его временным. Он основан авторами каденции.

Я бы предложил использовать temporal.io, так как он находится в активной разработке.

Другие вопросы по тегам