Well, this is not a very good example, but (in the most direct design) you will basically have two queues, and (depending on the amount of data) you can omit the database.
The first process will get your objects a from the "outside world" and put them in queue 1. The second process will uninstall the objects from queue 1, execute computeB and put the results in queue 2. A third process will deactivate objects from queue 2, execute computeC and write down the result or something else.
Depending on the amount of data involved (and possibly several other factors), the “objects” passed in the queues can be either your actual objects a or b or just tokens / keys to search for data in the database.
Queues themselves can be implemented in several ways. It is possible to implement a queue with a database, for example, although the details become messy. "Processes" can be Java tasks within a single Java process, or they can be separate OS processes, possibly even on separate machines.
When you use pipes in Unix, you efficiently use queues this way.
Hot licks
source share