Kontakt
stefan.bente[at]th-koeln.de
+49 2261 8196 6367
Discord Server
Prof. Bente Personal Zoom
Adresse
Steinmüllerallee 4
51643 Gummersbach
Gebäude LC4
Raum 1708 (Wegbeschreibung)
Sprechstunde nach Vereinbarung
Terminanfrage: calendly.com Wenn Sie dieses Tool nicht nutzen wollen, schicken Sie eine Mail und ich weise Ihnen einen Termin zu.

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.