Impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees:
When two systems communicate with each other, the simplest mode of operation is the synchronous communication model, where the system that initiates the communication (source system) waits for a response from the other system (target system) before sending another message.
In asynchronous communication, the sender does not wait for a response from the receiver and, in most cases, do not care about or is not aware of the receiver's existence. The sender will send (publish) the message to an intermediate broker (message broker) and once this broker responds with an acknowledgment, the sender will move on to the next task. Because of this approach, there is less waiting on the sender's side and the overall performance of message sending is improved.
One of the most important aspects of distributed system design and implementation is how the overall system works as a cohesive unit to produce great experiences for the consumers of the platform.
The orchestration approach involes a central system or a component that coordinates the communication between multiple systems to produce the expected result.
Choreography is a technology thatis' used in dancing where a team of dancers acts as a single unit to produce a show to the audience. There is no central coordinator or a person who controls the dance, but there is a choreographer who designs the dance before the show, makes sure dancers do their act properly during the show, and collaborate at the time of the show.
In a typical enterprise platform, North-South traffic is the more sensitive and customer-facing communication flow that attracts the maximum attention from everyone.
Most of the time, architects and technical leads give priority to the consumer-facing interfaces and they let developers decide on the internal communication between services.