Open raja-maragani opened 5 years ago
Implementing a persisted queue that's reliable and performs well isn't entirely easy. Logstash made that journey a while back. I'd like to make two points:
Asynchronous communication model, we are following the message bus to persistence, and if we maintain persistence to replace the message bus it is very tricky to track our communication end to end.
Eiffel Principles wise we need to discuss, we keep this Item in the block and proceed with some discussion around here and proceed.
Asynchronous communication model, we are following the message bus to persistence, and if we maintain persistence to replace the message bus it is very tricky to track our communication end to end.
I'm afraid I don't understand what you mean. Could you please elaborate?
@raja-maragani can you please elaborate for @magnusbaeck 's understanding.
Description
REMReM publish is publishing Eiffel messages into message bus(RabbitMQ). Reliability perspective RabbitMQ defined: Data safety is a joint responsibility of RabbitMQ nodes, publishers and consumers.
If RabbitMQ service unavailability due to various reason the REMReM publish service will not fail & same the messages in REMReM local disk and publish messages when RabbitMQ service available.
Motivation
REMReM client no need to handle Message bus failures and resend messages. REMReM publish monitor thread check the messages bus available or not if available messages will publish.
Exemplification
Benefits
Possible Drawbacks
REMReM publish endpoints /producer/msg & /generateAndPublish backward-compatible will miss due to this change
REMReM publish Request and Response changes