Functional Software Architecture
How does software architecture work with functions, immutable data, and combinators?
This training presents functional software architecture to participants as an alternative to object-oriented architecture. Compared to OO architecture, functional software architecture relies on immutable data, algebraic abstractions, and embedded domain-specific languages. The result is flexible and robust architectures that are less complex than OO and bring fewer hidden dependencies.
Due to the increased expressiveness and abstraction capabilities in functional languages, architecture is code. The training includes hands-on exercises where programming is done (in Haskell). An introduction to Haskell is provided as part of the training.
NEW: For in-house training, we also offer to use Scala instead of Haskell. An introduction is also provided here.
Prior knowledge of functional programming is helpful but not required. Those who have not yet programmed in functional languages or would like a brief refresher should attend the optional one-day pre-course.
iSAQB Advanced Level
This training is part of the Advanced Level of the iSAQB certification for software architects (CPSA-A) and implements the iSAQB module FUNAR.

If you attend this training as part of the iSAQB Advanced Level, you can have credit points recognized afterwards (10 credit points in the Methodology competence area and 20 credit points in the Technical Competence area).
Content
Pre-course "Introduction to Functional Programming" (1 Day)
The pre-course is a compact introduction to functional programming for training participants who have no experience with it yet or would like a brief refresher. The pre-course includes hands-on exercises where programming is done. The pre-course uses special teaching languages and the proven didactic methodology of the DeinProgramm design recipes.
Agenda
- Data modeling
- Design recipes
- Self-references and recursion
- Programming with sequences
- Higher-order programming
- Built-in data structures
- Programming with state
- Programming with accumulators
Functional Software Architecture (3 Days)
Fundamentals of Functional Programming
- Functions and values
- Composition
- Types
- Modules
Technologies for Functional Programming
- Functional programming languages and runtimes
- Static vs. dynamic types
- Tail recursion
- Evaluation strategies
- Runtime environments
Functional Modeling
- Combinator models
- Algebraic structures
- Integration with Domain-Driven Design
Functional Macro Architecture
- Monads
- Events
- Frontends with Model-View-Update
Upcoming Dates
2026-03-23 – 2026-03-26, Hamburg
Schulung inkl. Vorkurs: EUR 2.250,00 Frühbucherrabatt bis 23.01.2026: 15% Anmeldungen per Mail.
2026-05-05 – 2026-05-08, online
2026-06-29 – 2026-07-02, Hamburg
Schulung inkl. Vorkurs: EUR 2.250,00 Frühbucherrabatt bis 07.05.2026: 15% Anmeldungen per Mail.
2026-10-12 – 2026-10-15, online
2026-12-07 – 2026-12-10, Hamburg
Schulung inkl. Vorkurs: EUR 2.250,00 Frühbucherrabatt bis 07.10.2026: 15% Anmeldungen per Mail.
Instructor(s)
Dr. Michael Sperber
Dr. Sperber is the managing director of Active Group GmbH, which develops custom software exclusively using functional programming. He is an expert in functional programming and has been applying it for over 25 years in research and industrial development. Dr. Sperber has also been involved in programming education for over 30 years and has conducted extensive research on the topic. He is co-founder of the blog funktionale-programmierung.de and co-organizer of the developer conference BOB, as well as author of several books and numerous technical articles.
Johannes Maier
Johannes Maier is a software architect at Active Group GmbH in Tübingen. He works with functional programming languages, preferably Haskell, and uses Nix to manage complex dependencies and achieve continuous deployment.
Bianca Lutz
Bianca Lutz is a software architect at Active Group GmbH and works from Berlin. She has many years of experience in application development, the application of formal methods in software engineering, and is a certified expert in requirements engineering.
Marco Schneider
Marco Schneider is a software architect at Active Group GmbH and an expert in functional programming. He brings his knowledge from university teaching into workshops and conference talks. As an iSAQB-accredited trainer for the CPSA-A module "FUNAR - Functional Software Architecture", he teaches functional software architecture.
