Domain Models in Practice: DDD, CQRS & Event Sourcing

Event Information

Share this event

Date and Time

Location

Location

Online Event

Event description
Join DDD expert and business software artist Marco Heimeshoff for this intensive online workshop.

About this Event

Online Workshop in Live Streaming with Marco Heimeshoff. 12-13-16-17-27 November 2020, from 9 am to1 pm (CET - Italy) each day.

Building software that is aligned with the business needs of your customers is hard to build, and it is even harder to optimize for correct domain behaviour, execution performance and scalable information distribution at the same time. Distributing the model with microservices often falls short on the promised benefits and can leave you with a distributed monolith.

The secret to a successful implementation lies in the correct segregation of read and write models from a domain-driven perspective, and connections between them implemented with semantic events.

Join Marco Heimeshoff for these 5 half-day modules workshop as he'll guide you to build semantic models with a high alignment between business and code.

Target audience

This workshop is for Architects and Senior Developers with a strong interest in Domain-Driven Design and modern message-driven architectures.

Regardless of your experience in either Object-Oriented Programming, Functional Programming or other paradigms, all you need is the will and ability to build software with a focus on business behaviour.

Topics

  • Domain-driven design overview: Essential patterns and practices
  • Defining a Ubiquitous Language
  • Domain model implementation patterns
  • Implementing Aggregates, Entities and Value Objects
  • Bounded Contexts
  • Applying DDD in practice.
  • Capturing user intention instead of editing data
  • Implementing business behaviour in semantic code
  • Applying Event Sourcing
  • Testing with Domain Events using Behaviour Driven Development
  • Decoupling Bounded Contexts
  • Dealing with performance optimisation and snapshots.
  • Implementing read models
  • Projecting Event Streams into poly-structured data
  • Dealing with eventual consistency
  • Building distributed systems with Pub/Sub
  • Automating business processes with Sagas
  • Strategies for long lived, evolving Event Sourced systems
  • Discussing benefits, risks and socio-technical implications of CQRS and Event Sourcing.

Program

In this course, you will learn how to scale your application so that any number of queries can be handled, while also maintaining a behaviour rich domain model that can deal with complex scenarios.

Discover how Event Sourcing enables you to build highly cohesive and decoupled modules and changes the way you write and communicate about tests forever.

These patterns will help you to put your energy where the business value is, by letting you partition your team by their expertise and outsource the busy work. Drawing from Domain-driven design concepts, write code with Command Query Responsibility Segregation and learn how Event Sourcing tells a story in domain terms.

Keep your software system design in line with your organisation's needs, improve readability, and strengthen your communication with key stakeholders.

Agenda

Session One

  • Domain-driven Design overview: Essential ideas and language
  • Why, how and when to apply Domain-driven Design
  • Introducing the domain
  • Modelling Value types and Entities
  • Theory on aggregates in Domain-driven Design
  • Modelling Aggregates.

Session Two

  • Capturing intent instead of editing data
  • Applying Event Sourcing
  • Testing with Event Sourcing
  • Dealing with tradeoffs / heuristics around using events.

Session Three

  • CQRS Theory
  • Coding: Separating Write model from Readmodel in our domain
  • Implementing read models with poly structured data
  • Dealing with eventual consistency.

Session Four

  • Building distributed systems with Pub/Sub
  • Strategies for long lived, evolving Event Sourced systems
  • Benefits, risks and socio-technical implications of CQRS and Event Sourcing
  • Design APIs of Event Sourced systems depending on socio-technical relationships.

Session Five

  • Discussions, Q&A and review of exercises and case-studies "one week after the workshop"
  • Optional: Application of CQRS & Event Sourcing in front-end development.

Learning Objectives

  • Understand Domain-driven design (DDD) and when it applies
  • Model the problem domain and explore multiple solutions to choose from
  • Align your design with your business needs using CQRS and DDD
  • Build scalable and decoupled applications with Event Sourcing.

Online Workshop - How does it work

We will meet online in a virtual classroom and use presentation through screen share, collaborative architecture modelling on Miro and Solo- and Mob-programming with screen-shared IDEs. Every module will begin with a presentation via screen share and lead to a collaborative exercise. Discussions and questions are encouraged all the time.

The workshop will happen online and in live streaming: the trainer and all other participants will be in a video conference. You’ll be interacting and working together in real-time thanks to a variety of tools you’ll have at your disposal.

The workshop will keep its highly interactive and hands-on spirit despite being online.

This is why we require that all participants keep their webcam on for the whole duration of the workshop: this will enhance the quality of the communication and of the workshop as a whole.

You won’t be sitting at your desk watching slides and videos, and you’ll be engaged in real-time activities for the majority of the time… as if we were in a real classroom!

Why should you buy a ticket

These patterns will help you to put your energy where the business value is, by letting you partition your team by their expertise and outsource the busy work.

Drawing from Domain-driven design concepts, write code with Command Query Responsibility Segregation and learn how Event Sourcing tells a story in domain terms.

Keep your software system design in line with your organisation’s needs, improve readability, and strengthen your communication with key stakeholders.

F.A.Q.

Anything to do prior to the workshop (books to read, stuff to install)?

Attendees will benefit from coming prepared with the knowledge about DDD, CQRS and Event Sourcing, but this is not a prerequisite.

Is there anything I must do before I buy a ticket for this online workshop?

If you have a computer/tablet, a stable connection (at least 20 Mbps in download and 10 Mbps in upload), earphones, a microphone, and a webcam, then you’re ready to join the workshop.

You’ll get detailed information on what tools we’ll be using and how to get ready a couple of weeks prior to the workshop.

Check out your connection’s speed.

The workshop will keep its highly interactive and hands-on spirit despite being online. This is why we require that all participants keep their webcam on for the whole duration of the workshop: this will enhance the quality of the communication and of the workshop as a whole.

N.B.

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

About the workshop

Language: English.

Laptop: Yes, check out the FAQ section.

Maximum number of attendees: 20 participants.

Tools and Workstation: The workshop will take place online and in live streaming by using digital tools. You’ll get detailed information on how to join the online workshop, how to get ready for it and how it will work a couple of weeks prior to the workshop.

Link to the website

https://www.avanscoperta.it/en/training/domain-models-in-practice-workshop-ddd-cqrs-event-sourcing/

Trainer

Marco Heimeshoff

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 on Eventbrite in the field "Enter promo code", on the screen where you can select the number of tickets (before you hit the "Checkout button").

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

Location

Online Event

Save This Event

Event Saved