ap001: Architekturentscheidung: Spring Boot vs Jakarta EE vs Quarkus
Fachliche Situation: Ein Team muss entscheiden, wie Spring Boot vs Jakarta EE vs Quarkus in einer Enterprise-Landschaft eingesetzt wird, ohne aus Gewohnheit zur falschen Technik zu greifen.
Technische Entscheidung: Die Entscheidung zu Spring Boot vs Jakarta EE vs Quarkus wird als explizite Architekturregel mit Alternativen, Grenzen und Konsequenzen dokumentiert.
Warum wichtig: Die Entscheidung verhindert Architektur-Raten und macht Alternativen nachvollziehbar.
Typischer Fehler: Entscheidung wird über Bauchgefühl, Lieblingsframework oder vorhandenen Altcode getroffen.
Bessere Lösung: Entscheidung in ADR festhalten, Zielqualität messen und Code an klaren Ports oder Policies ausrichten.
Enterprise-Einordnung: Hilft bei Architekturboards, Migrationen, Plattform-Standards und nachvollziehbaren Technologieentscheidungen.
public class SpringBootVsJakartaEEVsQuarkusDecision {
public void execute(Order order) {
if (System.getProperty("mode").equals("legacy")) legacyProcess(order);
else modernProcess(order);
}
}
// Pattern: Architecture Decision Record - Entscheidung wird explizit und testbar gemacht.
public record SpringBootVsJakartaEEVsQuarkusPolicy(boolean async, Duration timeout, int maxRetries) {
public static SpringBootVsJakartaEEVsQuarkusPolicy enterpriseDefault() {
return new SpringBootVsJakartaEEVsQuarkusPolicy(true, Duration.ofSeconds(3), 2);
}
}
public final class SpringBootVsJakartaEEVsQuarkusUseCase {
private final SpringBootVsJakartaEEVsQuarkusPolicy policy;
public void execute(Order order) { validate(order); route(order, policy); }
}