When trying to use events for interop between microservices, engineers often run into the challenge of how to model interactions so as to enable asynchronous communication between their services. In the early 1970s J Paul Morrison invented Flow-Based Programming, a model in which a system was comprised of a number of applications communicating asynchronously through flows of discrete information packets.

Few engineers today are aware of Morrison’s insights, so in this session Ian Cooper will explore Flow-Based Programming as a tool to help model event-driven architecture. He will explain the basics of Morrison’s model, demonstrate how it has been used in Flow-Based Programming, look at the insights it gives us for event-driven architecture, and demonstrate its usage in that context.
By the end, you will another tool to understand how these older ideas can help you understand how to model asynchronous interaction in your system.

Ian Cooper is a polyglot coding architect with over 20 years of experience delivering solutions in government, healthcare, and finance. During that time, he worked for the DTI, Reuters, Sungard, Misys, Beazley, and Huddle delivering everything from bespoke enterprise solutions, “shrink-wrapped” products for thousands of customers, to SaaS applications for hundreds of thousands of customers. He is an experienced solution architect with a strong knowledge of OO, TDD/BDD, DDD, CQRS/ES, REST, messaging, design patterns, ATAM, and agile engineering practices.

Speaker

Ian Cooper

Ian Cooper

Principal Engineer

Just Eat Takeaway

Ian Cooper is a polyglot coding architect with over 20 years of experience delivering solutions in government, healthcare, and finance. During that time, he worked for the DTI, Reuters, Sungard, Misys, Beazley, and Huddle delivering everything from bespoke enterprise solutions, “shrink-wrapped” products for thousands of customers, to SaaS applications for hundreds of thousands of customers. He is an experienced solution architect with a strong knowledge of OO, TDD/BDD, DDD, CQRS/ES, REST, messaging, design patterns, ATAM, and agile engineering practices.