特定のユーザー アクションに基づいて定義済みのイベントを発生させる必要があるユース ケースが複数あります。
たとえばNewUser
、アプリケーションで が作成されたときにCreateUserInWorkflowSystem
、FireEmailToTheUser
非同期で呼び出す必要があるとしましょう。ユースケースに基づいてイベントが事前定義される、この種のビジネス ケースは他にも多数あります。Promises/Futures を使用して、これらのイベントを以下のようにモデル化できます
if 'NewUser' then
call `CreateUserInWorkflowSystem` (which will be Future based API)
call `FireEmailToTheUser` (which will be Future based API)
if 'FileImport' then
call `API3` (which will be Future based call)
call `API4` (which will be Future based call)
これらのFuture
呼び出しはすべて、失敗した呼び出しを再試行できるように、どこかに失敗を記録する必要があります。呼び出しは、それらの(イベントごとのイベント) が完了するNewUser
のを待機しないことに注意してください。Futures
それはプレーンなFutures/Promises
API を使用していました。ただし、ここではAkka Persistenceが適切であり、ブロック呼び出しが引き続きFutures
. Akka の永続性を使用すると、すぐに使用できるなどの理由で障害の処理が簡単になります。Akka の永続性はまだ実験段階にあることは理解していますが、タイプセーフは通常、これらの新しいフレームワークを昇格する前に実験的な状態に保つため、大きな懸念事項ではないようです。将来のリリースなどに(同じことがマクロにも当てはまりました)。これらの要件を考えるとFutures/Promises
、Akka の永続性の方が適していると思いますか?