TemporalというWorkflow Engineについて

temporal.io

Podcastを聴いていてたまたまTemporalというWorkflow Engineを見つけて、気になったので情報を集めてみました。

Temporalという会社

Temporalというプロダクト

  • Workflow Engine
    • AWS Step FunctionsとかAzure Durable Functionsと同じような機能を持っている
    • Single Stateful Service in your whole cloud that makes everything in your cloud stateless
  • 解決してくれる課題
    • Cloud Native Architectureで、スケールしやすくするためにはなるべく作るものはStatelessにしていきたい
    • でもWorkflowを組むにはどこかしらにStateは必要になる
      • Stateの管理は難しいし複雑になりやすい
    • そこでまるっとおまかせできるのがTemporal
      • TemporalがOrchestratorとしてStateをハンドリングしてくれる
  • アーキテクチャ
  • 現時点でサポートしてる言語

Workflowとは

例えばフードデリバリーの例

  1. マッチング
  2. ドライバーをレストランに行かせる
  3. レストランからお客さんところにドライバーを行かせる
  4. お客さんに評価させる

という一連の流れがWorkflowで、これはすべてうまく言った場合の流れ。この他にも失敗した場合のリトライだったり、タイムアウトをどのくらいにするか、とかの考慮お必要になる。このあたりのリトライ、タイムアウト、ヘルスチェック周りもTemporalがハンドリングしてくれる。

Temporal使ってる人たち

所感

  • Step Functionsだとローカルでテストしづらいから、どこででも動かせそうなTemporalに期待したい
  • ↑のことからローカルやCIでのテストができるのに期待
  • Saga Patternについてもいい感じに実現できそう

参考