Verwendete Entwurfsmuster in Version 2

MusterStelleWarum
Aggregate RootOrderschützt fachliche Invarianten
Value ObjectOrderId, OrderLinekleine unveränderliche Fachwerte
Port and Adapterports, adapterstrennt Fachlogik von Infrastruktur
Application ServiceAcceptOrderUseCaseorchestriert fachliche Abläufe
GatewayPaymentGatewaykapselt externen Payment Provider
RepositoryOrderRepositorykapselt Persistenz
Transactional OutboxJdbcOutboxPublisherzuverlässige Event-Übergabe
DTOREST Response / Payment Requeststabile API-Formate
Composition RootOrderRuntimeApplicationVerdrahtung am Rand der Anwendung

← Zurueck zum Index

Ergänzungen Phase 2
MusterStelleWarum
Publisher PortOrderEventPublisherAnwendung bleibt unabhängig vom Broker
Messaging AdapterRabbitOrderEventPublisherRabbitMQ wird am Rand gekapselt
Polling PublisherJdbcOutboxRelayRepository + OutboxRelayJobOutbox Events zuverlässig veröffentlichen
Event ConsumerBillingOrderAcceptedConsumerlose Kopplung zwischen Order und Billing
Dead Letter QueueRabbitMQ DefinitionsFehlerhafte Nachrichten isolieren
Ergänzungen Phase 3
MusterStelleWarum
Security BoundarySecurityConfigurationzentrale Schutzschicht am Runtime-Rand
Anti-Corruption LayerRealmRoleJwtAuthenticationConverterKeycloak Claims werden in Spring Authorities übersetzt
Method-Level AuthorizationBillingControllerfachliche Operationen rollenbasiert absichern
Policy MappingSecurity-RegelnEndpunkte werden explizit Rollen zugeordnet
Ergänzungen Phase 4
MusterStelleWarum
Test FixtureRealSystemTestEnvironmentreproduzierbare Test-Infrastruktur
Test HelperDatabaseAssertionslesbare technische Prüfungen
End-to-End TestOrderAcceptanceE2EITgesamter Systemfluss dokumentiert
Security Scenario TestSecurityE2EITRollenpfade nachvollziehbar machen
Contract Test VorbereitungWireMock Mappingsexterne Provider stabil simulieren
Ergänzungen Phase 5
MusterStelleWarum
Observability FacadeBusinessMetricsFachmetriken zentral kapseln
Health CheckOutboxHealthIndicatorBetriebsrisiken sichtbar machen
Metrics BinderOutboxMetricsBindertechnische Zustände als Metriken veröffentlichen
Correlation IDRequestCorrelationFilterRequests und Logs verbinden
Dashboard as CodeGrafana ProvisioningDashboards versionieren
Alert as CodePrometheus RulesBetriebsregeln versionieren
Ergänzungen Phase 6
MusterStelleWarum
Resilience DecoratorResilientPaymentGatewayschützt externen Gateway ohne Fachlogik zu verändern
Circuit BreakerPayment ProviderFehlerkaskaden stoppen
RetryPayment Providertransiente Fehler ausgleichen
Timeout / TimeLimiterPayment Providermaximale Wartezeit begrenzen
BulkheadPayment Providerparallele Providerlast begrenzen
Rate LimiterRateLimitingFilterAPI vor Request-Flut schützen
Error BoundaryResilienceAdvicestabile API-Fehler statt technische Details
Ergänzungen Phase 7
MusterStelleWarum
Pipeline as Code.github/workflows/ci.ymlBuild und Gates versioniert beschreiben
Quality Gatescripts/quality/run-quality-gates.shLieferfähigkeit prüfbar machen
Release CandidateCI Artefaktegeprüfte Zwischenstände erzeugen
Compliance by DesignSBOM und LizenzberichtCompliance nicht erst am Ende behandeln
Ergänzungen Phase 8
MusterStelleWarum
Deployment BoundaryKubernetes/Helm ArtefakteRuntime von Umgebung trennen
Configuration ExternalizationConfigMap/Secret/values.yamlKonfiguration nicht im Code hart verdrahten
Environment OverlayKustomize Overlayslokale, OpenShift- und Prod-Unterschiede sauber trennen
Release TemplateHelm Chartparametrische Releases ermöglichen
Health Probe PatternLiveness/ReadinessBetriebsfähigkeit messbar machen
Ergänzungen Phase 9
MusterStelleWarum
Expand/Contractmigration-rollback-strategy.mdsichere Schemaänderungen in mehreren Releases
Forward-FixMigrationsstrategieproduktionsnaher Umgang mit fehlerhaften Migrationen
Operational Runbookdocs/runbooks/database-*wiederholbare Betriebsabläufe
Retention Patternoutbox-retention.sqloperative Tabellen kontrolliert klein halten
Seed Data Separationdatabase/seedDemo/Testdaten getrennt von Produktionsmigrationen
Ergänzungen Phase 10
Muster / PrinzipStelleWarum
Operational Readinessdocs/operationsBetrieb wird Teil der Architektur
Incident Commandincident-response.mdstrukturierte Störungsbearbeitung
Recovery Plandisaster-recovery.mdWiederherstellung nachvollziehbar machen
Service Level Modelsla-slo-model.mdtechnische Signale in Betriebsziele übersetzen