MicroProfile Deep Dive

Config, REST Client, Fault Tolerance, JWT, Health, OpenAPI und Telemetry als Standard-Bausteine.

Version 3MicroProfileCodeDiagramm
Diagramm MicroProfile Deep Dive
Fachlich-technische Darstellung zu MicroProfile Deep Dive.

MicroProfile als Enterprise-Standardisierung

MicroProfile reduziert Wildwuchs bei Microservices. Statt jedes Team eigene Health Checks, REST Clients, Retries und API-Dokumentation baut, liefern Spezifikationen ein gemeinsames Programmiermodell.

Fault Tolerance richtig einsetzen

Timeout kommt vor Retry. Retry braucht Idempotenz. Circuit Breaker braucht Metriken. Bulkheads verhindern, dass ein langsames System alle Ressourcen blockiert.

Health ist kein Monitoring-Ersatz

Health Checks steuern Plattformverhalten. Monitoring erklärt Trends, Fehler und Latenzen. Liveness, Readiness und Startup sollten getrennt werden.

Entscheidungen

EntscheidungGute PraxisPrüffrage
Fachliche GrenzeZuerst Use Case, Invariante und Verantwortlichkeit klären.Welche Geschäftsentscheidung wird geschützt?
Technische GrenzeFramework-/Library-Code hinter Port, Adapter oder Konfiguration kapseln.Kann die Domain ohne Framework getestet werden?
BetriebTimeouts, Logs, Metriken, Traces, Security und Rollback definieren.Wie erkennt der Betrieb Fehler rechtzeitig?

Ausführliche Beispiele

REST Client mit Timeout und Retry
@RegisterRestClient(configKey = "customer-api")
public interface CustomerClient {
    @GET
    @Path("/customers/{id}")
    @Timeout(1000)
    @Retry(maxRetries = 2, delay = 100)
    CustomerDto find(@PathParam("id") String id);
}
Readiness Health Check
@Readiness
@ApplicationScoped
public class DatabaseReadiness implements HealthCheck {
    public HealthCheckResponse call() {
        boolean ok = database.ping(Duration.ofSeconds(1));
        return HealthCheckResponse.named("database").status(ok).build();
    }
}

Typische Stolperfallen

StolperfalleWarum gefährlich
Retry ohne BudgetAufrufe werden langsamer und Last steigt.
Health prüft allesEine Partnerstörung darf nicht zwingend Liveness töten.
OpenAPI ohne ReviewGenerierte Spezifikation ersetzt kein API-Design.
⌂ Cockpit