TemporalというWorkflow Engineについて
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とは
例えばフードデリバリーの例
- マッチング
- ドライバーをレストランに行かせる
- レストランからお客さんところにドライバーを行かせる
- お客さんに評価させる
という一連の流れがWorkflowで、これはすべてうまく言った場合の流れ。この他にも失敗した場合のリトライだったり、タイムアウトをどのくらいにするか、とかの考慮お必要になる。このあたりのリトライ、タイムアウト、ヘルスチェック周りもTemporalがハンドリングしてくれる。
Temporal使ってる人たち
所感
- Step Functionsだとローカルでテストしづらいから、どこででも動かせそうなTemporalに期待したい
- ↑のことからローカルやCIでのテストができるのに期待
- ユニットテストではTime Skipping(執筆時点でTypeScript版にはまだ無い)が使える
- Saga Patternについてもいい感じに実現できそう