Guidelines for Dummy Client Implementation in DDD Master Course
For our showcase implementation in the Domain-Driven Design (DDD) Master course, some basic dummy clients need to be provided. The clients don’t need to be beautiful. They just need to be able to demonstrate one happy path through the system. This document describes the minimum requirements on these clients.
- Video(s) hierzu
-
Architectural Principles
The dummy clients should adhere to the following architectural principles:
- The clients should be as simple as possible, focusing on demonstrating the core functionality without
unnecessary complexity.
- If you want, you can do more than what is what is described as required here. It will gain you bonus
points in the “commitment and effort” area, but not any extra points in terms of required functionality.
- The clients need to be placed in the same source code location as full-fledged productive clients would be.
So, make up your mind where you would locate the clients in your mono repo.
- Some clients will belong entirely to one bounded context. Other clients (for instance the Customer App), will
be shared by several bounded contexts. In the latter case, assume a simplified microfrontend architecture.
This means: build one umbrella application that contains links, iframes, or other references to
bounded context-specific parts of the UI.
- Use REST for commands and queries. In the first stage, build mock controllers on the back end side to serve these APIs.
- Use WebSockets for the reactive parts of the clients, when they need to react to backend events.
Technology Stack
You can implement the dummy clients using very simple static HTML pages with JavaScript code for interaction.
It should be easy to vibe code this.
For REST APIs, you can use the linked videos above as design guideline. They are in German, but they have
curated English subtitles.
For WebSockets, I recommend the following two sources. They should be sufficient for you to build a very
simple WebSocket client and controller.
The Baeldung code can be found at https://github.com/eugenp/tutorials/tree/master/spring-websockets. I found it helpful to get started, but maybe a
vibe-coded version would be even simpler.