Many years ago, I used to work on an Electronic Data Interchange (EDI) system. This system worked by the sales order system writing a summary of the sales for the current day to a text file; then, another process would pick up that text file and process those orders. This was, in essence, a distributed system: each part of the system functioned independently of the other. The sales order system could be turned off, and any files it had already written would still be processed.
These days, this form of data exchange has changed into using message brokers: either maintained on-premises or in the cloud. I'll explain more about why this is the case a little later on.
At the time of writing, RabbitMQ and ActiveMQ are two well-known message brokers that are typically run on-premises. All of the big cloud providers offer a message broker of one form or another, including...