Here we will discuss the different types of messaging patterns used in Reactive Architecture.
Since the real world is a perfect example of the natural distributed system, we can learn from it and apply its principles to build Reactive Systems. In the real world face to face conversation is synchronous communication. Over time letters have been introduced in the real world and that’s very much asynchronous communication. Over time we have introduced phone calls, video chats, etc as synchronous communication and similarly for asynchronous communications letters have been replaced by emails, text messaging has been introduced.
Now we have different options for both synchronous and asynchronous communication. But the key thing is that these communication channels should be used appropriately. For example, let’s say you have sent a text message to someone and then continue looking at your phone for the response whereas another person might not have read your text message due to various practical reasons. So expecting synchronous response via text messages is not appropriate.
Similarly in distributed software system appropriate synchronous or asynchronous messages should be used.
One of the key elements of Reactive Principles is that Reactive Systems should be using Message Driven Architecture.
Asynchronous messages are the backbone of Reactive Systems. Synchronous messages can also be used but that should be driven by domain requirements rather than technical convenience.
Communication between Reactive Microservices can be
#reactive architecture #scala #reactive systems