Functional Design and Architecture, 1st edition

Published by Manning Publications (November 21, 2024) © 2025

  • Alexander Granin
Products list
  • A print edition

Title overview

Design patterns and architectures for building production quality applications using functional programming, with examples in Haskell and other FP languages.

In Functional Design and Architecture you will learn:

  • Designing production applications in statically typed functional languages such as Haskell
  • Controlling code complexity with functional interfaces
  • Architectures, subsystems, and services for functional languages
  • Developing concurrent frameworks and multithreaded applications
  • Domain-driven design using free monads and other functional tools
  • Property-based, integrational, functional, unit, and automatic whitebox testing

Functional Design and Architecture is a pioneering guide to software engineering using Haskell and other functional languages. In it, you'll discover Functional Declarative Design and other design principles perfect for working in Haskell, PureScript, F#, and Scala.

about the technology

Functional programming offers a powerful alternative to object-oriented programming that helps tackle the complexities of large-scale software. Entrenched design patterns and architectural principles made for OOP are poorly suited for creating large-scale functional applications. This book lays out new methodologies, principles, and architectures optimized for high-level software design using functional languages.

about the book

Functional Design and Architecture is a comprehensive guide to software engineering using functional programming. Inside, you'll find cutting-edge functional design principles and practices for every stage of application development, from architecting your application through to running simple and maintainable tests. There's no abstract theory—you'll learn by building exciting sample applications, including an application for controlling a spaceship and a full-fledged backend framework.
RETAIL SELLING POINTS 
  • Designing production applications in statically typed functional languages such as Haskell 
  • Controlling code complexity with functional interfaces• Architectures, subsystems, and services for functional languages 
  • Developing concurrent frameworks and multithreaded applications 
  • Domain-driven design using free monads and other functional tools 
  • Property-based, integrational, functional, unit, and automatic whitebox testing 
AUDIENCE 
For experienced developers who know a functional language.

Table of contents

table of contents

 detailed TOC

PART 1: INTRODUCTION TO FUNCTIONAL DECLARATIVE DESIGN

PART 2: MINIMUM VIABLE PRODUCT

PART 3: DOMAIN-DRIVEN DESIGN

PART 4: STATEFUL AND REACTIVE APPLICATIONS

7 APPLICATION STATE

8 REACTIVE APPLICATIONS (TODO: THE SIMULATOR)

PART 5: DESIGNING REAL-WORLD SOFTWARE

9 MULTITHREADING AND CONCURRENCY

10 PERSISTENCE

11 BUSINESS LOGIC DESIGN

12 TESTING

APPENDIXES

APPENDIX A: PLENTY OF MONADS

APPENDIX B: LAYERING SUBSYSTEMS WITH A MONADIC STACK

APPENDIX C: WORD STATISTICS EXAMPLE WITH MONAD TRANSFORMERS

APPENDIX D: APPLICATION ARCHITECTURES IN HASKELL AND SCALA

APPENDIX E: THE MVAR REQUEST-RESPONSE PATTERN

APPENDIX F: FREE MONADIC EDSL FOR AN INTERACTIVE FICTION GAME

APPENDIX G: HASKELL AND PURESCRIPT

Need help?Get in touch