From d503cb0da3c8c3dab1ad5cae0ef250f87da4c00a Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Sat, 24 Mar 2018 10:45:43 +0900 Subject: [PATCH] Add delivery semantics notes to stream refs (#24777) --- akka-docs/src/main/paradox/stream/stream-refs.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/akka-docs/src/main/paradox/stream/stream-refs.md b/akka-docs/src/main/paradox/stream/stream-refs.md index a27f20e378..d6da26f4aa 100644 --- a/akka-docs/src/main/paradox/stream/stream-refs.md +++ b/akka-docs/src/main/paradox/stream/stream-refs.md @@ -140,6 +140,18 @@ The process of preparing and running a `SinkRef` powered distributed stream is s (i.e. by using "merge preferred" or any other variation of the fan-in stages). @@@ +### Delivery guarantees + +Stream refs utilise normal actor messaging for their trainsport, and as such provide the same level of basic delivery guarantees. Stream refs do extend the semantics somewhat by demand re-delivery and sequence fault detection; in other words: + +- messages are sent over actor remoting + - which relies on TCP (classic remoting, or artery tcp) or Aeron UDP for basic redelivery mechanisms +- messages are guaranteed to to be in-order +- messages can be lost, however: + - a *dropped demand signal* will be re-delivered automatically (similar to system messages) + - a *dropped element* signal* will cause the stream to *fail* + + ## Bulk Stream References @@@ warning