Intro
In one of my first tasks as a software engineer, I wrote code to integrate two parts of an app with a messaging service. A few months later, I used the same messaging service again to process a continuous flow of data, because it was what I knew and felt that it would solve the problem best.
Looking back, streaming would have fit our needs better. I knew how to use the tool, but not when to choose it.
Messaging and streaming help parts of an application share information. Knowing the difference helps you choose how to distribute work, share updates, and keep history. AWS offers services for both. Let's look at when each fits.
What is messaging?
With messaging, one part of an app can send information without waiting for another to finish processing it.
A producer sends the information; a consumer receives and processes it.
Messages can do things like request receipt generation or announce an order to shipping, billing, and notification services.
A work queue holds tasks for your code to process.…