Good morning experts,
I am currently discovering Kafka capabilities and more than a technical question I have a conceptual question so thought this “Architecture and Design” category was a good fit for it.
I have been designing asynchronous based integrations for the last 15 years and depending on the content of the payload being transmitted (just a way to categorize them) they could be:
Message based: The payload contains the whole data set of the entity being transmitted (e.g. all the details of a customer).
Event based: The payloads contains just information about the an event (notification) occurred on a data entity but without the details all the details of the data entity (e.g. customer 123 created or customer 123 updated). This is normally is accompanied by a request-reply read API/Service that provides subscribers the ability of retrieve the data they want upon specific business events.
Reading about Kafka and watching some of the tutorials or webinars (for example yesterday I watched “Event-Driven Architectures Done Right”), I have observed that Kafka talks about events but not in the same terms as I am used (refer to point 2). They talk about scenarios where the whole data sent is being transmitted and anyway they are referring to this as an event driven architecture. Could someone kindly clarify?
In your experience designing asynchronous data exchanges with Kafka, how would you decide about going for option 1 above (message based approach) or option 2 above (event based approach + Read API/Service) for enabling a data exchange between publishers and consumers?
Many thanks in advance.