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 at 20:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.