14. works great for ...
• RPC style communication
• if the flow through the system is static
• fast transactions
15. gets fiddly when ...
• there are asynchronous callbacks from
outside
• message flow can change based on various
factors
• tasks can take days to complete
35. problem
• we start a workflow
• we call some external API
• the external API somehow notifies us
(Mail, Callback URL, ...) about progress
• we need to continue in the workflow
40. • the backend daemon for the callback polls a
view in CouchDB
• we can search for any value in the request
we sent
• all we need is a view that searches for the
very value this external API uses as
correlation ID