17 vollständige Lernprojekte mit klarer Kurzbeschreibung, Lernzielen und direkten Einstiegen in Quellcode, Buchkapitel, Praxisdokumentation und verwendete Entwurfsmuster.
17fachliche Labs
493Java-Dateien
17Tests und Runner
17Pattern-Dokumente
17 Labs
01
Kapitel 01
Enterprise-Java-Plattform-Lab
Grundlagen bis Outbox
Verbindet Java-Grundlagen mit einem fachlichen Order-Modell: Value Objects, Aggregate, Ports und Adapter, Transaktionsgrenze und Outbox werden in einem durchgängigen Lernprojekt sichtbar. Geführter Codepfad mit 7 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Fachliche Modelle stabil aufbauen
Use Case und Infrastruktur trennen
Order und Outbox konsistent speichern
Java 21DDDPorts & AdaptersOutbox
47 Java-Dateien1 Tests/Runner1 Maven-POM
02
Kapitel 02
Transaktionen-und-ACID-Lab
Transaktionen, Grenzen und ACID
Vergleicht unsichere Dual Writes mit einer klaren Transaktionsgrenze. Das Lab zeigt atomare Änderungen, Rollback-Verhalten und die Kopplung zwischen Bestellung, Bestand und Outbox. Geführter Codepfad mit 7 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Transaktionsgrenzen erkennen
Dual-Write-Fehler nachvollziehen
Atomare Use Cases testen
Java 21ACIDTransaction BoundaryOutbox
32 Java-Dateien1 Tests/Runner1 Maven-POM
03
Kapitel 03
Locking-und-Deadlocks-Lab
Locking, Isolation und Deadlocks
Simuliert konkurrierende Zugriffe ohne externe Datenbank. Optimistic und Pessimistic Locking, Isolationseffekte, Timeouts und Deadlocks werden reproduzierbar und testbar. Geführter Codepfad mit 7 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Lost Updates erkennen
Locking-Strategien vergleichen
Deadlocks und Timeouts behandeln
Java 21Optimistic LockingIsolationDeadlocks
19 Java-Dateien1 Tests/Runner1 Maven-POM
04
Kapitel 04
Outbox-und-Idempotenz-Lab
Outbox, Idempotenz und Crash-Fälle
Macht kritische Crash-Fenster zwischen Datenbank und Broker sichtbar. Publisher-Retries, Event-Envelopes und idempotente Consumer verhindern doppelte oder verlorene Verarbeitung. Geführter Codepfad mit 7 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Crash-Fenster analysieren
Idempotente Consumer bauen
Retry und Deduplication testen
JDK-LabTransactional OutboxIdempotenzRetry
22 Java-Dateien1 Tests/Runner0 Maven-POM
05
Kapitel 05
Outbox-Betriebs-Lab
Outbox in Produktion und Betrieb
Erweitert die Outbox um Betriebsmechanik: Backpressure, Retry-Policies, Cleanup, Metriken, Alert-Level und nachvollziehbare Runbook-Entscheidungen. Geführter Codepfad mit 8 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Outbox-Stau früh erkennen
Backpressure und Retry steuern
Cleanup und Alarmierung betreiben
JDK-LabOperationsBackpressureMonitoring
21 Java-Dateien1 Tests/Runner0 Maven-POM
06
Kapitel 06
REST-API-Design-Lab
REST API Design
Zeigt robuste HTTP-Verträge rund um den Order-Use-Case: Validierung, konsistente Fehlerantworten, Idempotenz, Versionierung und die Trennung von API-Modell und Domäne. Geführter Codepfad mit 7 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Stabile API-Verträge definieren
Fehler konsistent abbilden
Idempotente Requests gestalten
JDK-LabRESTAPI ContractValidation
30 Java-Dateien1 Tests/Runner0 Maven-POM
07
Kapitel 07
Security-Lab
Security, Rollen und Audit
Modelliert Authentisierung, Autorisierung und Audit als explizite Architekturbausteine. Rollen, Berechtigungen und nachvollziehbare Sicherheitsentscheidungen bleiben testbar. Geführter Codepfad mit 7 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Rollen und Rechte trennen
Autorisierung zentral prüfen
Audit-Trails nachvollziehbar machen
JDK-LabAuthorizationRBACAudit
31 Java-Dateien1 Tests/Runner0 Maven-POM
08
Kapitel 08
Messaging-Grundlagen-Lab
Messaging-Grundlagen
Erklärt Messaging als Vertrag zwischen Publisher und Consumer. Commands, Events, Event-Envelopes, Topic-Zuordnung und Schema-Entscheidungen werden am Order-Fluss greifbar. Geführter Codepfad mit 7 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Commands und Events unterscheiden
Event-Verträge sauber modellieren
Publisher und Consumer entkoppeln
Java 21EventsEvent EnvelopeSchema
31 Java-Dateien1 Tests/Runner1 Maven-POM
09
Kapitel 09
Messaging-Retry-und-DLQ-Lab
Messaging-Fehlerbetrieb
Behandelt den Fehlerpfad als Teil des Designs: transiente und permanente Fehler, Retry-Entscheidungen, Dead-Letter Queue, Quarantäne und kontrolliertes Reprocessing. Geführter Codepfad mit 8 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Fehler klassifizieren
Retry-Budgets anwenden
DLQ und Replay sicher betreiben
JDK-LabRetryDLQReprocessing
28 Java-Dateien1 Tests/Runner0 Maven-POM
10
Kapitel 10
Messaging-Betriebs-Lab
Messaging in Produktion
Fokussiert den produktiven Nachrichtenbetrieb: Lag, Partitionierung, Consumer-Zustand, Health-Signale, Metriken und Entscheidungen für Störung und Wiederanlauf. Geführter Codepfad mit 8 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Consumer Lag bewerten
Betriebsmetriken lesen
Störungen kontrolliert abarbeiten
JDK-LabKafka OperationsLagObservability
23 Java-Dateien1 Tests/Runner0 Maven-POM
11
Kapitel 11
Legacy-Characterization-Lab
Legacy Characterization
Sichert das reale Verhalten eines Legacy-Prozessors mit Characterization Tests und Szenariokatalog. Erst das beobachtete Verhalten wird stabilisiert, bevor Refactoring beginnt. Geführter Codepfad mit 7 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Ist-Verhalten erfassen
Szenarien reproduzierbar machen
Refactoring durch Tests absichern
JDK-LabCharacterization TestsLegacySafety Net
15 Java-Dateien1 Tests/Runner0 Maven-POM
12
Kapitel 12
Legacy-Extraktions-Lab
Legacy-Extraktion
Zerlegt einen überladenen Legacy-Prozessor in fachliche Verantwortungen. Ports, Policies, Workflow-Schritte und Tests machen Abhängigkeiten sichtbar und austauschbar. Geführter Codepfad mit 8 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Betreibt alten und neuen Pfad kontrolliert nebeneinander. Feature Toggles, Shadow Mode, Parity-Vergleich und Fallback reduzieren das Risiko der Migration. Geführter Codepfad mit 8 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Shadow Traffic einsetzen
Ergebnisse auf Parität prüfen
Fallback kontrolliert auslösen
JDK-LabBranch by AbstractionShadow ModeFeature Toggle
29 Java-Dateien1 Tests/Runner0 Maven-POM
14
Kapitel 14
Legacy-Abbau-Lab
Legacy-Abbau
Führt die Strangler-Migration bis zum kontrollierten Abschalten. Traffic Routing, Cutover-Gates, Removal Guards und Cleanup-Regeln verhindern einen verfrühten Legacy-Abbau. Geführter Codepfad mit 8 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Cutover-Kriterien definieren
Traffic sicher umschalten
Legacy kontrolliert entfernen
JDK-LabStranglerCutoverDecommission
31 Java-Dateien1 Tests/Runner0 Maven-POM
15
Kapitel 15
JVM-Performance-Lab
JVM-Speicher und Garbage Collection
Untersucht Allocation Pressure, Retention und Garbage Collection mit reproduzierbaren Messpunkten. Cache-Grenzen, Registries, GC-Logs und Incident-Diagnose werden verbunden. Geführter Codepfad mit 9 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Retention-Probleme erkennen
GC-Signale interpretieren
JVM-Incidents strukturiert analysieren
Java 21JVMGarbage CollectionMemory
26 Java-Dateien7 Testszenarien1 Maven-POM
16
Kapitel 16
Virtual-Threads-Lab
Virtual Threads und Performance
Zeigt, warum Virtual Threads knappe Downstreams nicht unbegrenzt skalieren. Bulkheads, Connection-Pool-Grenzen, Rate Limits, Timeouts und Metriken bilden ein realistisches Schutzsystem. Geführter Codepfad mit 9 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.
Virtual Threads richtig einordnen
Downstreams mit Bulkheads schützen
Timeouts und Limits messen
Java 21Virtual ThreadsBulkheadRate Limiting
23 Java-Dateien1 Tests/Runner1 Maven-POM
17
Kapitel 17
Framework-Vergleichs-Lab
Framework-Vergleich
Legt Spring Boot, Jakarta EE, Quarkus und Micronaut als Adapter um denselben fachlichen Use Case. So werden Runtime-, DI- und HTTP-Unterschiede vergleichbar, ohne die Domäne zu vermischen. Geführter Codepfad mit 9 direkt eingebetteten Java-Dateien und erklärten Abhängigkeiten.