Reliable delivery in Typed, #20984
Different approach than in classic AtLeastOnceDelivery because I would like: * support flow control, with a work pulling approach * be possible to use with or without persistence (without it may loose messages if producer node crashes) * detect lost messages on the consumer side and let that drive resends, instead of aggressively resending from producer side * deliver messages in order and deduplicate resent messages * have an efficient protocol for acknowledgments over the network (not ack each message), but still have a simple one-by-one protocol for the end user * support 3 use cases (building blocks) * point-to-point * work pulling * sharding * optional durable queue, with one event sourced implementation * protobuf serialization * ApiMayChange * reference docs and examples * api docs * doc example code missing so far
This commit is contained in:
parent
6e171815b6
commit
1d16e847b5
61 changed files with 18784 additions and 19 deletions
|
|
@ -395,7 +395,8 @@ lazy val persistenceTyped = akkaModule("akka-persistence-typed")
|
|||
actorTyped,
|
||||
persistence % "compile->compile;test->test",
|
||||
persistenceQuery % "test",
|
||||
actorTypedTests % "test->test",
|
||||
actorTestkitTyped % "test->test",
|
||||
clusterTyped % "test->test",
|
||||
actorTestkitTyped % "test->test",
|
||||
jackson % "test->test")
|
||||
.settings(javacOptions += "-parameters") // for Jackson
|
||||
|
|
@ -409,12 +410,13 @@ lazy val clusterTyped = akkaModule("akka-cluster-typed")
|
|||
cluster % "compile->compile;test->test;multi-jvm->multi-jvm",
|
||||
clusterTools,
|
||||
distributedData,
|
||||
persistence % "test->test",
|
||||
persistenceTyped % "test->test",
|
||||
actorTestkitTyped % "test->test",
|
||||
actorTypedTests % "test->test",
|
||||
remoteTests % "test->test",
|
||||
jackson % "test->test")
|
||||
.settings(Protobuf.settings)
|
||||
// To be able to import ContainerFormats.proto
|
||||
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "akka-remote" / "src" / "main" / "protobuf"))
|
||||
.settings(AutomaticModuleName.settings("akka.cluster.typed"))
|
||||
.settings(Protobuf.settings)
|
||||
// To be able to import ContainerFormats.proto
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue