Debasish Ghosh

Debasish Ghosh

Functional and Algebraic Domain Modeling

@debasishg · India


Programmer, father, husband, avid reader, author, occasional speaker at technology conferences and Seinfeld fanboy. Senior member of ACM and loves spending time with his beautiful family. Passionate about technology and open source, loves functional programming, and has been trying to learn math and machine learning. Authored 2 books - (a) DSLs In Action published by Manning in December 2010 and (b) Functional & Reactive Domain Modeling (upcoming summer 2016 from Manning). Tweets at @debasishg, blogs at Ruminations of a Programmer.


Functional and Algebraic Domain Modeling

Domain modeling is usually implemented using OO design. In this approach of "nouns-first" we design object hierarchies using subtyping to model the various elements of the domain. In this talk we will take a different approach using Scala:

  • Start with focus on verbs first
  • Think how we can model domain behaviors using pure functions grouped within extensible modules
  • Use an algebraic approach towards evolution of modules,the algebra being composed of functions, types & laws
  • See how the domain algebra can be constructed from categorical structures like monoids, functors & monads
  • Discuss how the functional patterns lead to compositionality - an extremely important quality that scales your domain model.

Mel Conway

Inventor, Educator, Author of “Conway's Law”

Eric Evans

Author of “Domain-Driven Design”

Rebecca Wirfs-Brock

Responsibility-Driven Design

Udi Dahan

Founder of NServiceBus

Prof. David West

Author of “Object Thinking”

Jimmy Nilsson

Author of “Applying DDD & Patterns”

Weronika Łabaj


Debasish Ghosh

Functional and Algebraic Domain Modeling

Nick Tune

Co-author of “Patterns, Principles and Practices of DDD”

Greg Young

Creator of CQRS

Alberto Brandolini

Inventor of “EventStorming”

Felienne Hermans

Author of "Grokking Computational Logic"

Andra Sonea

Solutions Architect, Financial Services

Ken Power

Complexity Navigator

Jérémie Chassaing

Software Gardener

Scott Wlaschin

Creator of

Avraham Poupko

Technical leader

Edwin van Wijk

Software Architect

Romeu Moura

Reasoned Schemer

Marijn Huizendveld

Nerd in a suit

Stijn Volders


Robert Smallshire

Modeller of domains, systems and processes

Mathias Verraes

Student of Systems

Michel Grootjans


Yves Lorphelin

Loves Chaos & Failures

Arnaud Bailly

Event Sourcing, Functionally

Paul Rayner

Leading DDD and BDD practitioner

Nicole Rauch

Software Developer and Development Coach

Thomas Ploch

Infinite State Machine

Cyrille Martraire

Deliberate Designer

Thomas Coopman


Yves Reynhout

The Journeylist

Oana Juncu

Agile Business DJ

Allard Buijze

Pragmatic modeller, creator of AxonFramework

Vaughn Vernon

Author, consultant, trainer


Contact us at for sponsor opportunities.