1. Queues like Kafka and NATS have internal storage/streams to keep events that have not been processed yet. So, it seems like they could guarantee reliability.
2. Who writes to the inbox table? Is it a service that accepts the events? Does it listen to events and save them into the inbox?
You have to also mention about the acknowledgement event after consumption of the message. This ack will update a flag in the outbox table to make sure, the operation is complete.
Idempotency is crucial in distributed systems, especially the ones with payments.
Great article, Raul! And thank you so much for the mention! 🙏
Brilliant article! I have two questions:
1. Queues like Kafka and NATS have internal storage/streams to keep events that have not been processed yet. So, it seems like they could guarantee reliability.
2. Who writes to the inbox table? Is it a service that accepts the events? Does it listen to events and save them into the inbox?
Very nice post Raul.
Makes the whole flow clear in terms of sending messages reliably plus receiving as well.
Also, thanks for the mention!
Really clear, thnx for your contribution!
Thanks!
You have to also mention about the acknowledgement event after consumption of the message. This ack will update a flag in the outbox table to make sure, the operation is complete.
nicely explained + visuals make it easier to understand. Good work, Raul.