between Distribution Centers and Suppliers. Price updates sent by Headquarters to the Supermarkets. Supermarket inventory management. Sales statistics collection. New product announcements. Distribution of credit card hot lists.
a different responsibility. Building capabilities to assume new responsibilities in an existing system: cost time, money etc. with the risk of budget overruns encourages monolithic architectures and the disadvantages that come with them increases coupling increases complexity
that in turn: reduce coupling allows systems to evolve in isolation ensure compatibility via APIs or message formats allows messages to be stored until they're processed typically offers transactional guarantees allows systems to communicate asynchronously
the channel, while another reads from it. Note - cases involving multiple producers and consumers are not covered (yet) Reference: Enterprise Integration Patterns, Gregor Hohpe and Bobby Woolf
the staple of most system integrations. Not to be confused with POSIX queues (and other OS provided queues). Provides primitives for clients to enqueue and dequeue messages often in a durable manner with transactional guarantees. Usually offer delivery guarantees (a message is delivered only once).
a producer should not be lost. Often backed by filestores, or even OLTP databases. The choice is dictated by reliability concerns. Messages can be stored in memory, but often as an optimization.
writes with high reliability. Reads and writes are usually synchronous and transacted. In reality, this depends on the type of sessions established by the clients. Messages may be fetched from disk for consumption.
queues. Disk quotas may be established for queues, usually for flow control. Message sizes. Large messages (order of MBs) are possible. Message sequencing will be employed to partition messages as sequences.
: Transacted consumptions are relatively more disk-intensive. Depends on the number of subscribers. Messages can be persisted for a long duration for durable subscribers to consume, after periods of disconnectedness.