Vaughn Vernon’s Post

View profile for Vaughn Vernon, graphic

Software Ecologist, Architect, Modeler | Optimizer of Teams and Individuals | Domain-Driven Design and Systems Transformation

In messaging, exactly-once delivery is a myth. You've got at-most-once delivery and at-least-once delivery. Don't leave exactly-once delivery *semantics* to your message broker/bus to manage. "The management of uncertainty must be implemented in the business logic" Pat Helland *** Links in comments ***

Vaughn Vernon

Software Ecologist, Architect, Modeler | Optimizer of Teams and Individuals | Domain-Driven Design and Systems Transformation

1w
Vaughn Vernon

Software Ecologist, Architect, Modeler | Optimizer of Teams and Individuals | Domain-Driven Design and Systems Transformation

1w

Watch my talk: "Modeling Uncertainty" https://youtu.be/8Y-XPlXOWoA

Jacek Milewski

Trainer at Bottega IT Minds, DevArch at Circle K

1w

Nobody cares about the 'delivery'. What we care about is 'processing' Then it makes sense to say that message will be either: - processed at most once - processed at least once - processed exactly once Delivery, idempotency, deduplication - all build up to processing guarantees that really matter

Yeray Cabello

High performance .NET, Event Sourcing, CQRS

1w

Oh, I see you've been present in every discussion I've ever had on this subject. If I had an euro for every "What do you mean we can't know?"

Yeray Cabello

High performance .NET, Event Sourcing, CQRS

1w

Did you remove a mention of Kafka?

Like
Reply
Christopher M. Punches

Distributed Systems Architect / Enterprise Architectural Consultant

1w

I'm sorry but that's not true. It may be that all the current scalable models have that caveat, but a transactional protocol layered into a connection-oriented stream in a non-distributed topology does not have that limitation. You can do "exactly once" this way, but, it may just not be particularly useful. I'll finish this with an admission that you know way, way more about this topic than I do, as I am only just exploring the idea of designing a distributed message queue system right now and am years away from doing so.

Piotr Gankiewicz

Software Engineer | DevMentors.io co-founder | Building Iggy.rs message streaming 🦀

1w

Exactly-once is a buzzword for at-least-once + deduplication + idempotent processing.

Christoph Berger

I write in and about Go.

1w

> "The management of uncertainty must be implemented in the business logic" Agreed, all errors in lower levels eventually affect the business logic, which must react appropriately. The above statement is therefore a truism (although it won't hurt to reiterate it occasionally, as people tend to forget uncomfortable facts.)

Sarwan Surchi

Event-Driven .Net | CQRS, ES & DDD enthusiast

1w

I believe exactly-once technically is impossible

Like
Reply
See more comments

To view or add a comment, sign in

Explore topics