// 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.

Aaron Stannard

Aaron Stannard

CEO & Co-Founder, Petabridge

Creator of Akka.NET. Building distributed systems infrastructure for .NET since 2015. Writes about OSS business models, distributed architecture, and the intersection of AI and systems programming.

twitter.com/Aaronontheweb

Enjoyed this post? Subscribe to our newsletter for more insights on distributed systems, Akka.NET, and .NET + AI.

Read more about: Akka.NET Business Case Studies Engineering NBench Product Videos
ref: comments

// COMMENTS

ref: newsletter

// STAY_CONNECTED