I'm having a discussion at work that event-based architecture should not be used in a scenario that we have multiple producers and a single consumer.

In our company, we have many external integrations that in my view, would be allowed to send an event to our queue. My proposal is the following:

  1. Integration receives info from a 3rd part. We fire a foo-discovered event;
  2. Consumer on our main system is listening to our foo-discovered event and is processing it, ingesting it to the database;

There are several integrations of this kind, let's say, up to 10.

My colleagues proposal is that each integration fires a dedicated event, like integration1-foo-discovered and we process it in the same way as above.

Basically, he want's that the producers "own" the streams.

In my idea, I don't feel that's necessary, since each integration does it's work normalizing the payload and sending a standard event to the consumer.

There are any problems with my approach? Can I have some references to enrich our discussion?

  • Do these events have any priority? Do you want to ensure fairness? For eg, If Integ1 generates a Million events and Integ2 has 10 events is it ok for integ2 events to be stuck behind 1M integ1 events?
    – Srinivas
    Jan 24, 2019 at 20:30


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.