Functional Domain Modeling

Data modeling is not a simple process as it might look. Approaches to code like DDD (domain driven design) are completely based on working consciously over our domain entities to represent the business reliably. In this short course you will learn how to model your domain data using the tools and concepts that Functional Programming brings to the table.


Previous experience with Scala

Previous experience with building micro-services-based architectures

What you will learn

The power of the Kotlin type system for data modeling. Nothing and Unit.

Modeling domain entities with algebraic data types (ADTs). Product and sum types.

Structural syntax derived at compile time for product types.

Union types.

Modeling errors in our domain using coproduct types.

Modeling domain behaviors (business logic) as pure functions.

Modeling domain behaviors (business logic) as ADTs (algebras).

Functional data types for representing concerns over over our data.

Leveraging immutability within our domain.

Using optics to read and modify immutable domain data.

Refining our domain types for a more precise representation of the business elements.

Removing the need for testing invariants with refined types.

Inline classes.

Referential transparency and purity across all our domain.



Functional Domain Modeling

1 Day / 8 hours

1 Day / 8 hours

Instructor-Led Course

Instructor-Led Course



This Functional Domain Modeling includes:

Maximum Class Size of 15

Access to Academy EduTools Platform

Access to Course Materials

Certificate of Completion

Access to a Private Channel with Trainers in the Academy Slack

A Q&A session one week post-course

A pre-and-post meeting with our trainers

Let's have a conversation

Schedule a meeting