Events/Messaging Questions
Message Brokers
Do I need to process multiple tasks concurrently?
- Message brokers allow for multiple tasks to be processed in parallel, allowing for increased efficiency and scalability.
Is scalability an important factor in my application?
- Message brokers provide the ability to scale up the application to accommodate more users or tasks.
Do I need to ensure message delivery and reliability?
- Message brokers provide reliable delivery of messages, ensuring that messages are delivered and processed correctly.
Do I need to support asynchronous communication?
- Message brokers provide the capability to support asynchronous communication, allowing for message processing to be done at a later time.
Do I need to handle message transformation?
- Message brokers provide the ability to transform messages into different formats, allowing for easier integration with other systems.
Do I need to support message routing and filtering?
- Message brokers provide the capability to route and filter messages, allowing for more efficient message processing.
Do I need to store messages in the event of an outage?
- Message brokers provide the ability to store messages in the event of reading an outage, ensuring that messages are not lost.
Do I need to support message queuing?
- Message brokers provide the ability to queue messages, ensuring that messages are processed in a timely manner.
Do I need to support multiple languages?
- Message brokers provide the capability to support multiple languages, allowing for applications to be developed in multiple languages.
Do I need to support message logging?
- Message brokers provide the ability to log messages, allowing for better tracking and debugging of applications.
Reason | Message Broker | Event Bus | Both | None |
---|---|---|---|---|
Publish and subscribe messages | ✅ | |||
Route messages to multiple destinations | ✅ | |||
Scale message processing for multiple consumers | ✅ | |||
Store messages for later processing | ✅ | |||
Send messages to multiple consumers | ✅ | |||
Publish and subscribe to events | ✅ | |||
Send messages to a single consumer | ✅ | |||
Send a message and then receive a response | ✅ | |||
Guarantee message delivery | ✅ | |||
Process messages in real time | ✅ | |||
Guarantee message ordering | ✅ | |||
Manage message routing | ✅ | |||
Store messages in a queue | ✅ | |||
Maintain message state | ✅ | |||
Process messages asynchronously | ✅ | |||
guarantee message delivery within a certain time frame | ✅ | |||
Process messages in parallel | ✅ | |||
Distribute messages to multiple hosts | ✅ | |||
Send a response back to the sender | ✅ | |||
Send messages with low latency | ✅ | |||
Process messages in a distributed fashion | ✅ | |||
Process messages with minimal configuration | ✅ | |||
Need to transfer large files | ✅ | |||
Need to stream data in real time | ✅ | |||
Need to build a web application | ✅ | |||
Need to store data in a database | ✅ | |||
Need to make a phone call | ✅ |