Svitla Smart Talk: Implementing Event-Driven Microservices architecture in Functional language
Join us for the next Svitla Smart Talk with Nikhil Barthwal as we explore Event-Driven Microservices in Functional language.
Discover the benefits of using functional programming, such as scalability, productivity, and correctness, to model stateless web services. Learn how immutability enables infinite scalability and how the concise nature of functional code enhances productivity. With strict typing, writing correct code becomes easier as type mismatches are caught at compile time. Don't miss this opportunity to see how functional paradigm seamlessly captures the behavior of highly distributed web services in F#.
Outline/Structure of the Tutorial
- Brief introduction to Microservice Architecture and its benefits.
- Mapping concepts of Microservices Architecture to Functional Programming constructs.
- Using Domain Driven Design (DDD) to create Microservices boundaries.
- Using Algebraic Data Types (ADT’s) to model Domains (Examples using F#’s Discriminated Unions).
- Introducing Event Driven Architecture and modeling events in F# Discriminated unions.
- Introducing Event Sourcing and CQRS Architecture patterns.
- Implementation of state generation in Event Sourcing via List fold operations.
- Problems associated with Distributed data and solution using Distributed Sagas Implementing Distributed Sagas as Computation Expressions (Monads equivalent of F#).
- Introducing F#'s Type providers for fetching external data. Alternate approaches using Apache Thrift/Google Protobuf are also discussed.
Architectural Patterns for Microservices and their implementation in Functional Programming languages.
Developers building Microservices & Distributed systems
Prerequisites for Attendees
Basic understanding of Microservices & Distributed systems
Nikhil Barthwal is passionate about building distributed systems. He has several years of work experience in both big companies & smaller startups and also acts as a mentor to several startups. Currently, he is a Sr. Software Engineer in Facebook. Outside of work, he speaks at local meetups as well as international conferences on several topics related to Distributed systems & Programming Languages.