€852.78 – €913.78

Domain Modeling Made Functional Workshop

Event Information

Share this event

Date and Time



Pirelli Institute

viale Fulvio Testi 223

20162 Milan


View Map

Event description


Milan, 19-20 May 2020. Trainer: Scott Wlaschin

Functional programming and domain-driven design might not seem to be a good match, but in fact functional programming can be an excellent approach to designing decoupled, reusable systems with a rich domain model. This workshop will show you why.

This is a hands-on workshop by Scott Wlaschin, author of the book "Domain Modeling Made Functional", and it's designed for beginners in functional programming.
You'll do lots of domain modeling exercises starting with some simple models and then enhancing them with constraints, state machines, error handling, commands and events, and so on.

Target Audience

This workshop is aimed at software developers and it will be especially useful if you are learning functional programming - all concepts used in the workshop will be explained.
Previous development experience is recommended.


  • Introduction to functional programming
  • Functions and types
  • Composition as the fundamental principle
  • Overview of DDD principles
  • The importance of bounded contexts
  • Persistence ignorance
  • Onion/Hexagonal architecture and how this works with functional programming
  • Modeling requirements with algebraic types
  • Records, choices, and functions
  • Modeling constraints
  • Modeling states
  • Programming a workflow
  • Keeping IO at the edges
  • Handling domain errors
  • Composing complex functions
  • Evolving the domain
  • Dealing with changes in requirements

Learning Objectives

By the end of the workshop, you'll know how to build working solutions with rich domain models, using only functional programming techniques.

Join this workshop by Scott Wlaschin and learn:

  • The concepts of functional programming
  • How to represent the nouns and verbs of a domain using types and functions
  • How to decouple the pure domain logic from the outside world
  • How to ensure that constraints and business rules are captured in the design
  • How to represent state transitions in the domain model
  • How to build a business workflow from smaller components
  • How to handle errors as part of the domain.


Do I need to know something beforehand in order to participate in this workshop?
We will be using F# as our development language. No experience with F# needed.
Please install the F# compiler and an F#-friendly editor such as Visual Studio Code using the instructions at fsharp.org.

Do I need to bring my laptop with me?
Yes, you will need your laptop in order to join this workshop. More detailed info will be sent you prior to the workshop date.


This workshop will be confirmed upon reaching the minimum number of participants. We'll send an official confirmation to all registered attendees one month prior to the workshop dates at the latest.

About the workshop

Language: English.
Time: from 9.30 am to 5.30 pm each day.
Venue: Pirelli Institute, Viale Fulvio Testi, 223, 20162, Milano (find out here how to get to the Pirelli Institute).
Laptop: Yes, check out the FAQ section.
Dress code: Informal.
Maximum number of attendees: 16 participants.
Included in the price: Two coffee breaks and lunch with the trainer and the other attendees are also included in this ticket... because networking matters :-)

How to get to Milan?

The workshop will be held at the Pirelli Institute (Viale Fulvio Testi, 223, Milan).
Check out how to get to the Pirelli Institute, our recommendations for the accommodation, how to get to Milan, and much more at our Istituto Pirelli Institute Venue Page.

Not enough? Drop us a line at info@avanscoperta.it.

Link to the website



Scott Wlaschin


Pirelli Institute, viale Fulvio Testi, 223, Milano.


Each day will start at 9.30am and finish at 5.30pm.

Under_Cover_Learner Discount - SAVE 20%

If you’re paying the ticket out of your own pocket and you don’t have a VAT number, you can get a 20% discount on any tickets and on any ticket tiers!

How? Just enter the Under_Cover_Learner promotional code in the registration field on Eventbrite.

Please note: This code cannot be used in conjunction with any other offers/discount codes, and it applies to any ticket tier.

If you need to pay with PayPal, drop us a line at info@avanscoperta.it.

We accept the following methods of payment:

PayPal, Credit/Debit card (via PayPal, click on the link: "Don't have a PayPal account?"), Bank transfer (upon request - contact us at info@avanscoperta.it).

T&C, Privacy Policy, cancellations and refunds, Venue info

Find out more at this link.

Share with friends

Date and Time


Pirelli Institute

viale Fulvio Testi 223

20162 Milan


View Map

Save This Event

Event Saved