Michael Sperber

CEO of Active Group

We do most of our software development using functional programming and I am a co-founder of the leading German-language blog on the subject.

I co-organize the BOB Developer Conference on February 28, 2020 in Berlin.

I'm on the steering committee of ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design (FARM).

I'm on the Editorial Board of the Journal of Functional Programming.

Past Activities

Michael Sperber
Code Mesh V
Tutorial/ 06 Nov 2020
13.00 - 16.30

Functional Software Architecture

The last 10 years have seen a boom of functional-programming adoption for sizeable industrial projects. This is despite the fact that precious little has been written about the architecture of large functional programs. Many architectural styles and techniques common in the Enterprise world can’t be applied directly when using functional programming, or require significant changes. On the other hand, the benefits on architecture from using functional programming are significant: Design methodologies like Domain-Driven Design can be adapted to using functional programming, and then extended using combinator models and denotational design. The tutorial gives an overview of design and architecture techniques available to the functional software architect.



 Basic software development experience



3,5 hours



Software architects, developers



Basic programming skills in a functional language.



  • understand architectural aspects of functional programming
  • know fundamentally functional modelling techniques
  • know where traditional architecture and functional architecture connect



We'll pick 2-4 of the following topics, based on audience preference:

  • functional architecture overview
  • introduction to Haskell, Clojure, F#, Racket, Elixir, Scala, Erlang
  • controlled effects
  • combinator models
  • embedded DSLs
  • monads for the working programmer
  •  property-based testing
  •  DDD vs. FP
  • "I'll never convince my boss to use this."
  •  Denotational Domain-Driven Design
  •  Programming the Day after Tomorrow: Dependent Types



  • Know functional programming, but are unsure how to do an entire functional application
  • Know DDD and functional programming, would like to connect the two
  • Want to get effects under control