/ddd-edm-course-lab-tmpl

Primary LanguageJavaDo What The F*ck You Want To Public LicenseWTFPL

Domain-Driven Design and Event-Driven Microservices

Learning a Pathway to Evolutionary Architecture

Setup Guide

NOTE: While IDE choice should not matter, these instructions have only been tested in IntelliJ IDEA.

  1. Ensure your workstation has a proper Java 11 installation.

  2. You will need to make sure your IDE is properly configured for Lombok. At the following links, you can find instructions for Eclipse and IntelliJ IDEA.

  3. Import pom.xml as a Maven project into your IDE.

  4. Run com.mattstine.dddworkshop.pizzashop.suites.SetupSuite to demonstrate that all the implemented tests are passing.

  5. Find com.mattstine.lab.setup.HelloWorldTest. This test should currently be failing.

  6. Make it pass!

  7. You've now demonstrated the basic flow of the labs, which is to make each of the failing tests for a given lab pass.

  8. Assuming you've gotten this far, you're ready to start Lab 1!

Lab Guides

  • Lab 1 - TDD Aggregate Root - Create Kitchen Commands with Business Logic and Invariants
  • Lab 2 - TDD Aggregate Root - Create and Publish Kitchen Domain Events
  • Lab 3 - TDD Aggregate Repository - Create Kitchen Repositories and Add Domain Events
  • Lab 4 - TDD Aggregate Repository - Rehydrate Kitchen Aggregates by Reference
  • Lab 5 - TDD Policy - Subscribe to a Kitchen Domain Event from within an Aggregate and Create CQRS View
  • Lab 6 - TDD Application Service - Expose Kitchen Business Interface and Implement Transactions
  • Lab 7 - TDD Policy - Subscribe to a Kitchen Domain Event from an Adjacent Aggregate and Update State