4 Message delivery and processing
This chapter covers
- Message delivery and message processing
- At-least once, at-most once, and exactly once
- Equivalence and idempotence
When we talk about message delivery and processing, we may come across numerous misconceptions and instances of borderline deception. These can be detrimental to forming accurate and concise mental models and can cloud our understanding.
For example, many authors use the term exactly once processing, but what they really mean is exactly once processing semantics: Exactly once processing refers to the ideal scenario where each message is processed only once, whereas exactly once processing semantics means the system behaves as if each message is processed only once, despite potential underlying retries or duplicates.
Another example is marketing material that claims a software product guarantees exactly once processing semantics to make the product more appealing while failing to disclose the limitations of that guarantee.
If you have already established an accurate and concise mental model, misconceptions or misinformation will not affect you. However, if you are still developing that mental model, misconceptions or misinformation may lead you to design a system based on assumptions of guarantees that were never actually provided. In this chapter, we will be rigorously accurate and concise in order to develop a mental model that is also rigorously accurate and concise.