6
votes
REST APIs vs Message brokers for Backend to Backend communication
Message broker will allow your systems to be offline at different times without rendering the ecosystem unusable. For example you can add a product without the marketplace being available (assuming ...
5
votes
How to decouple messaging middleware from microservices?
How should I share the functions of the target language that can be invoked by the shared library?
Most languages/ecosystems have packages, and a system which manages those packages and the ...
4
votes
How to share API between microservices?
The problem we are facing currently is if there is a change in JSON schema files, all the services using the files, along with the translation layer in the respective services need to be adapted to ...
4
votes
Accepted
Applications interested to the same event and concurrency
You can rarely guarantee the execution order of anything concurrent; therefore, the obvious solution although not necessarily satisfying is to sequence the operations. Some suggestions to do that:
...
3
votes
RabbitMQ or REST API Public
If I were you, I would use a REST API. This has several advantages:
Less stateful connections. Every REST-Call is stateless. having thousands of clients, you don't have thousands of open connections.
...
3
votes
Applications interested to the same event and concurrency
Let me quickly rephrase your question to make sure I am understanding correctly.
You have two applications, App_A and App_B.
They both subscribe to the same message, CreationEvent.
When App_B gets the ...
2
votes
RabbitMQ: Topics and Persistence/Durability
What may be confusing is the RabbitMq pub/sub tutorial uses temporary anonymous queues created by the consumers : https://www.rabbitmq.com/tutorials/tutorial-three-spring-amqp.html, so yes, in this ...
2
votes
asp.net Core 2 MVC - best way to send 1000s of emails every day
This really sounds like something you could easily put in a AWS Lambda. We do something similar at my company using Azure Functions. You could even chain them together. One lambda determines who to ...
2
votes
Accepted
MQ Architecture: How to handle old messages in the queue and releasing a consumer/producer upgrade
We try to make sure all changes to a message contract are both forward and backward compatible. In those rare cases where there is truly a breaking change in the message contract, we consider that a ...
2
votes
Accepted
What's the use of event sourcing and asynchronous message queues for sending commands
So what is the use of persisting the events as a sequence when we are unsure about their order?
Well, we are sure about the order of events -- they are sequenced in the order that they are written, ...
2
votes
Rabbitmq and multiple subscribers
I'm late to the party, but maybe this is still useful for others.
A fanout exchange does what you need.
Create one queue for each application/microservice. Create a fanout exchange. Bind each queue to ...
2
votes
Accepted
Inter-microservice communication with gRPC without hard-coding service endpoints
gRPC is certainly a popular choice, though I would balk at referring to any particular paradigm as unequivocally the best in an area as diverse as microservices.
The various means you list (gateways, ...
2
votes
Accepted
Synchronisation of different "channel" in an asynchronous way
Mostly what a message broker buys you is the ability to publish to a topic without having to keep track of the subscribers. Message brokers don't magically speed you up. In fact, they add some queuing ...
2
votes
Accepted
Pull important messages from DLQ queue and save them in a relational database, to be analyzed and sent back later. Is it a good idea?
The proper term for the issue you are addressing is 'poison message processing'. Dead letter queues are typically used by messaging systems for undeliverable messages. A poison message is one that a ...
2
votes
AMQP messaging: How to generate documentation for consumers?
I would personally use documentation comments. It is a good place to start at the very least. This looks like it is C#, where they are defined using /// (however most languages have them).
For C# in ...
2
votes
Accepted
Best approach to update the User Interface on consumed event(s)?
Unless you need actual real-time feedback, polling the server using a normal REST endpoint is the simplest method. When the client starts an activity on the server, it should receive a link to a ...
2
votes
Common library for classes and communication between microservices?
Code shared between projects should indeed be kept in a library, just like all the other shared code that you use. You don't want to implement persistency layers or TLS connection handling for each ...
2
votes
Accepted
Common library for classes and communication between microservices?
The reason why people tend to recommend against shared code in between microservices is that it creates organizational interdependencies in between services and teams. It is OK to use external ...
2
votes
How to dispatch sets of items to the relevant (LB) exclusive consumers with RabbitMQ?
In the type of system that you're describing, the various workers need to be able to negotiate with each other and come to a consensus.
Here's one possible design that might meet your needs.
I hope ...
2
votes
Rabbitmq create queues dynamically based on number of users
First of all, it's normal that each user has their own queue. I don't know why the blog author recommends against it (didn't read) but I assume that his case is a bit different from yours.
Depending ...
2
votes
Are RabbitMQ Streams overkill for 1 machine event-driven architecture aplication?
If you need to use multiple processes, a message queue can be appropriate. If you only have one process one of the main advantages will be lost, but that does not mean it cannot provide some utility. ...
2
votes
Message broker design pattern best practice
If you adopt Kafka you'll find
its ability to replay the log,
during development or after a production incident,
is very useful.
If you instead choose RabbitMQ or SQS,
pay careful attention to message ...
1
vote
Inter-microservice communication with gRPC without hard-coding service endpoints
gRPC is a communication protocol. it needs to have the address of the target server just as you need server address for Http, FTP, SMTP and other protocols. so there should be something that can ...
1
vote
Pull important messages from DLQ queue and save them in a relational database, to be analyzed and sent back later. Is it a good idea?
I understand your concerns about this, but I would say that yes, you do need to extract the dead messages from the queuing system.
My sole reason for saying this is this sentance:
maybe even ...
1
vote
Process AMPQ messages both reliably and fast
This is not necessarily the best way to solve it either, but I thought Id throw the thought out there.
How about the initial consumer just consuming the message, immediately sending it to another ...
1
vote
Accepted
Moving single tenant application with queue to multi tenants web application
First choice is better for security and independence between tenants, like the choice about database.But you have to build tools to handle it. Failure of one queue, don't expose failure to other ...
1
vote
Rabbitmq and multiple subscribers
Yes, but it's not a queue, it's then called the publisher/subscriber pattern.
Queue - every item gets processed once. If there are multiple agents, every work item still gets processed once. Example: ...
1
vote
Rabbitmq and multiple subscribers
can a queue have multiple consumer ?
Yes it's possible that multiple consumers take messages from the same queue. But every message is only consumed once by one consumer
is it possible for the ...
1
vote
Implementing RESTful API in front of Event based microservices
I see what your are saying. I do have a few objections though.
a) The gateway will not be synchronous. Asynchronous programming e.g. nodeJS sends a requests and when a response arrives it executes ...
1
vote
How to send queue messages to one queue in rabbitmq?
At work I have worked in a similar requirement that you have proposed here. I'd like to answer your questions and give some more hints here.
First of all for starters please study this link in order ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
rabbitmq × 61message-queue × 22
architecture × 14
microservices × 12
messaging × 8
design × 6
apache-kafka × 6
c# × 4
design-patterns × 4
python × 4
distributed-system × 4
api × 3
event × 3
spring-boot × 3
queue × 3
amqp × 3
php × 2
database × 2
rest × 2
domain-driven-design × 2
node.js × 2
architectural-patterns × 2
enterprise-architecture × 2
event-sourcing × 2
event-programming × 2