アクタのネットワーク

前の Timeout アクタ作っているときに思ったけど、もっとアクタ間の繋がりを意識した記法を考える必要があるかもしれない。さて、どういう風に書こうかな。

A から B にメッセージを送る

  • A に「処理を行い、B に「結果」を送る」が届く

(TODO)

A から B にメッセージを送り、B は C にメッセージを送る

  • A に「処理を行い、B に「処理を行い、C に「結果」を送る」が届く
  • B に「処理を送り、C に「結果」を送る」が届く

(TODO)

A から B と C にメッセージを送る

  • A に「処理を行い、B と C に「結果」を送る」が届く

(TODO)

A から B と C にメッセージを送り、B は C にメッセージを送る

  • A に「処理を行い、B に「処理を行い、C に結果を送る」を送り、C に「結果」を送る」が届く
  • B に「処理を行い、C に結果を送る」が届く

(TODO)

A から B と C にメッセージを送り、B と C は Dにメッセージを送る

  • A に「処理を行い、B と C に「処理を行い、D に結果を送る」を送る」が届く
  • B に「処理を行い、D に結果を送る」が届く
  • C に「処理を行い、D に結果を送る」が届く

(TODO)

メモ

  • 並列接続、直列接続を意識すれば良いのかもしれないとか思った。
  • 意外と難しいのは、このネットワークトポロジはその時々の処理限定であるということ。アクタの関係を事前に記述しておいて、そこにメッセージを流すといった感じじゃないのが難しいかな。
  • メッセージとはすなわち継続である