Active Group

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.

iSAQB Logo

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

Schulung inkl. Vorkurs: EUR 2.250,00

Frühbucherrabatt bis 05.03.2026: 15%

Anmeldungen per Mail

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

Schulung inkl. Vorkurs: EUR 2.250,00

Frühbucherrabatt bis 12.07.2026: 15%

Anmeldungen per Mail

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. 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

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

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

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.