Wippyについて
Wippyは、実行中に変更可能なソフトウェアのためのオープンソースのアクターモデルランタイムです。自動化システム、AIエージェント、プラグインアーキテクチャなど、コアを一度設計した後、再ビルドや再デプロイなしに繰り返し適応させる必要があるアプリケーションに適しています。
Wippyが何を置き換えるか、何ではないか、誰が開発しているかを含む製品全体の概要については、Aboutページをご覧ください。
基盤となるのはアクターモデルです。コードはメッセージを通じて通信する分離されたプロセスで実行され、各プロセスは自身の状態を管理します。何かが失敗しても、その影響は分離されます。スーパービジョンツリーがリカバリを自動的に処理し、クラッシュ時にプロセスを再起動します。
local worker = process.spawn("app.workers:handler", "app:processes")
process.send(worker, "task", {id = 1, data = payload})
process.monitor(worker)
設定は中央レジストリに保存され、変更はイベントとして伝播されます。設定ファイルを更新すると、実行中のプロセスがその変更を受け取ります。システムを稼働させたまま、再起動なしで適応します。新しい接続、更新された動作など、必要なものは何でも対応できます。
local db = registry.get("app.db:postgres")
local cache = registry.get("app.cache:redis")
インフラストラクチャ障害を乗り越える必要がある操作(決済フロー、マルチステップワークフロー、長時間実行されるエージェントタスクなど)については、ランタイムが自動的に状態を永続化します。操作中にサーバーがダウンしても、ワークフローは別のマシンで中断した場所から再開されます。
システム全体が単一のファイルから実行されます。オーケストレーションするコンテナも、調整するサービスもありません。1つのバイナリ、1つの設定で、残りはランタイムが処理します。
Wippyを構築した理由の全容については、Why We Built Wippyをご覧ください。