アクターモデル
ちょっと時間が空いてしまいましたが・・ これまではローカルのみでアクターを動かす簡単なアプリケーションと、 基本的な機能や考え方について解説しました。 今回はProto Actorを使って、ネットワーク上でアクターシステム同士がコミュニケーションを行い…
PHPだけで分散処理ってできるの? 多分皆さんがそう思うはずです。 これまでPHPではリソースの操作などで並行処理を利用することは エクステンションなどの介して実現はできていましたが、 物理的分かれているPHPに処理を依頼する、結果を戻すなどは Kafkaな…
Supervisionの続き 前回はアクターモデルの監視・監督について説明していきました。 特に親子関係による監視・監督についてはなんとなく理解することができたのではないかと思います。 今回は親子関係にないアクター間の監視について触れていきます。 blog.y…
PHPでES+CQRS PHPで完全なES+CQRSを表現するには、CDC(Change Data Capture)+Outbox形式にするのが定番でした。 単純なQueueではリプレイができず、 伝播させて終わり、いわゆるEvent Streamingの形になってしまうことが多いと思います。 とはいえCDC+Outbox…
はじめに 今回は、アクターモデルの監視・監督について説明します。 監督は親アクターが子アクターの状態を監督する機能で、 監視はアクターモデルをサポートするツールキットの特徴のひとつで、アクターが他のアクターの状態を監視する機能です。 一般的なW…
PHPでアクターモデルが導入できない・・? 長い間そう言われてきました(自分も言ってました)。 実際に並行システムのためのものでもあり、 PHPでは簡単な並行処理以外は難しくもありました。 ja.wikipedia.org PHP主体の方はOOPに慣れ親しんでいると思いま…
メッセージが届かない時って? 前回はアクターモデルのMailboxにメッセージが届いた時にどの様な仕組みで処理されるかを見ていきました。 今回はメッセージが届かない時に何が起きるかを見ていきます。 前回 blog.ytake.jp.net DeadLetters メッセージが届か…
Malboxとは 前回まではアクターを使った簡単な実装について解説しました。 一般的なWebアプリケーションで利用するHTTPのリクエストレスポンスを中心として考えるものと異なり、 情報伝達経路を中心に考えていくように感じられたかもしれません。 アクターの…
小さなアプリケーションを実装してみよう 今回は、前回のhello worldから少しだけアクターについて掘り下げていきます。 Proto Actorでの用語で記述しますが、Akka/Pekkoと用語がちょっと異なるだけなので、 読み替えてみると良いと思います。 構成を考えよ…
Hello Actor 細かい機能の解説はあとの回として、 まずはアクターシステムを使ったプログラミングを体験してみましょう。 Goではアクターシステムが商用でも十分利用できるものは、 下記のProto Actorとergoがあります。 github.com github.com Proto.Actor…
まえがき アクターモデルといえばErlang、もしくはScala/Javaなどで利用できるAkka/Pekkoがデファクトですが、 Go言語でも不自由なく利用できるProto Actorというツールキットがあります。 Akka/Pekkoほど機能はないため いくつかは自分で実装しなければいけ…