Chapter7. FSharp microservices Goals Understand pure functional domain modelling using DDD concepts Build evented domains using the evented monad Clean (functional) architecture using impure-pure-impure sandwich Dependency inversion via the effect monad Build application pipelines using the NBB.Mediator.FSharp Build web apis using Giraffe Build event driven stream processors (workers) powered by NBB.Messaging.Host and NBB.Messaging.Effects Curricula F# Types - Microsoft docs The "Understanding F# types" series by Scott Wlaschin Domain Modeling Made Functional by Scott Wlaschin Easy domain modelling with types by Mark Seemann Six approaches to dependency injection by Scott Wlaschin Dealing with complex dependency injection in F# by Bartosz Sypytkowski Purity in an impure language with the free monad – by example of a Tic-Tac-Toe backend with CQRS and event sourcing F# free monad recipe by Mark Seemann Giraffe Examples See folder Sample for a full working web api and messaging worker