NOTE
2.11 Best-Effort Notification Implementation: MQ
1. What It Is - 1. The producer finishes executing its local transaction and sends a message to MQ. 2. MQ sends the message to the consumer. 3. The consumer consumes the message and executes its local transaction; if successful it ack's, and if it fails it nack's and requeues the message. 4. The consumer can actively call the producer's interface to query message status.
This is a historical learning note and may contain outdated or incomplete understanding.
1. What It Is

- The producer finishes executing its local transaction and sends a message to MQ.
- MQ sends the message to the consumer.
- The consumer consumes the message and executes its local transaction; if successful it ack’s, and if it fails it nack’s and requeues the message.
- The consumer can actively call the producer’s interface to query message status.
2. Characteristics
It is similar to Distributed Transaction Solution: Reliable-Message Eventual Consistency.md (the original link has expired). It depends on MQ and allows a small number of distributed transactions to fail.
2.1. Best-Effort Notification vs Reliable-Message Eventual Consistency
| Best-effort notification | Reliable-message eventual consistency | |
|---|---|---|
| Failure retry | The consumer actively queries the producer’s interface | The producer periodically queries unfinished messages and sends them to the consumer |
Discussion
Sign in with GitHub to comment. Discussions are stored as GitHub Issues.View on GitHub