// BLOG
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!
Observe and Monitor Your Akka.NET Applications with Phobos
Phobos automatically instruments your Akka.NET applications with OpenTelemetry — traces, metrics, and logs with built-in dashboards.
Enjoyed this post? Subscribe to our newsletter for more insights on distributed systems, Akka.NET, and .NET + AI.
// COMMENTS