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:
- Integration receives info from a 3rd part. We fire a
foo-discovered
event; - 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?