I work in Server Framework Team as Scala developer at Wix. This team is responsible for building a common framework and libraries used to develop Wix services. Also I am a co-organizer of Functional Vilnius user group and partnership associate professor at Vilnius University teaching Functional Programming in Haskell.
Design of correct and yet simple inter-process communication in micro-service architecture is a tough thing to do: communication protocols might be sync or async, some APIs use request/response model while others use streaming and so on. In this talk we will discuss which micro-service IPC design problems we (Wix.com) faced and how we solve them using FP building blocks: monads, semigroups, etc. Obviously, introduction of FP design patterns at our scale (>500 developers) is a huge effort, so we will also discuss an execution process of such changes.Slides