Why You Should Try to Avoid Exactly Once Message Delivery
In Akka.NET and Everywhere Else
This is a follow-up to our last post, “How to Guarantee Delivery of Messages in Akka.NET.” In that post we introduced the AtLeastOnceDeliveryActor
and talked about strategies for retrying deliveries of messages in order to make sure they’re successfully procssed.
In this post we’re going to talk about “At Least Once” delivery’s big brother, “Exactly Once” delivery - and why you should try to avoid it if at all possible.
The video covers:
- Different state requirements of each messaging guarantee;
- How to implement “Exactly Once” delivery in Akka.NET using an acknowledgment buffer;
- Known issues and difficulties with ACK buffers;
- Using idempotent data structures as ACK buffer alternatives; and
- Knowing when you don’t need “Exactly Once” message delivery.
Let us know in the comments if you found this to be helpful!
If you liked this post, you can share it with your followers or follow us on Twitter!
Written by Aaron Stannard on March 24, 2016
- Read more about:
- Akka.NET
- Case Studies
- Videos
Observe and Monitor Your Akka.NET Applications with Phobos
Did you know that Phobos can automatically instrument your Akka.NET applications with OpenTelemetry?
Click here to learn more.