Skip to content

Implementing an Event-Driven Microservices Architecture

Photo of
Hosted By
Mark P. and Nikhil B.


Web services are typically stateless entities that need to operate at scale. Using the functional paradigm offers benefits like scalability, productivity and correctness.

This talk starts introduces Domain-Driven Design to create Microservice boundaries. Using discriminated unions, the domain model can be captured as code eliminating the need for separate documentation. Moreover, using computation expressions (F#'s monads), one can model custom workflows easily.

It then introduces event-driven architecture, where every external action generates an event that the system responds to. Events act as the notification messages for any significant change in state and may generate other event(s) as services invoke each other.

Nikhil Barthwal is a Senior Software Engineer based in New York. He has several years of work experience with both big companies & smaller startups and also acts as a mentor to several startups. He is particularly fond of using functional programming languages like F# for better productivity.

Outside work, he speaks at local meetups as well as international conferences on several topics related to Distributed Systems & programming languages. He has a Master’s in Distributed Systems and a Bachelor’s in Electrical Engineering.