Spring Boot vs. Quarkus am Beispiel von STOMP

STOMP

STOMP-Push an alle Browser-Clients ist ein Verfahren, bei dem ein Server über eine bestehende WebSocket-Verbindung Nachrichten an alle verbundenen Browser gleichzeitig sendet – ähnlich wie eine Durchsage in einem Flughafen, die alle hören.

In Java Spring Boot wird das typischerweise mit  @MessageMapping  und  SimpMessagingTemplate  umgesetzt, wobei  convertAndSend(„/topic/global“, nachricht)  alle Clients erreicht.

Das ist lesbar, einfach zu debuggen und funktioniert in allen modernen Browsern ohne Flash oder Plug-ins.

Wichtige Merkmale:

– /topic/ = Publish/Subscribe: Alle Empfänger bekommen dieselbe Nachricht (Broadcast)

– /queue/ = Punkt-zu-Punkt: Nur ein Empfänger bekommt die Nachricht (nicht für „an alle”)

– Die Verbindung bleibt offen → keine ständigen HTTP-Requests nötig (kein Polling)

– STOMP ist ein einfaches Text-Protokoll über WebSocket, das leicht zu implementieren ist

So funktioniert’s:

1. Starte die Spring Boot App → Server läuft auf  http://localhost:8080 
2. Öffne mehrere Browser-Tabs mit  http://localhost:8080/index.html 
3. Klicke auf “Nachricht senden” in einem Tab
4. Alle Tabs erhalten sofort die Nachricht “Nachricht an alle Browser!”

Das ist die minimalste funktionierende Demo für STOMP-Broadcast an alle Clients.

Spring Boot vs. Quarkus

Für die STOMP-Demo ist Spring Boot besser, weil:

– STOMP native Unterstützung hat (kein manueller Parser)

– Nur ca. 3 Zeilen Broadcast impl.

– Keine WebSocket-Boilerplate nötig ist

– Als Java/Spring-Entwickler man schon das Ökosystem kennt

Quarkus lohnt sich erst, wenn:

Du viele Microservices mit schnellem Scaling hast

– Serverless/Container-Umgebung mit Cold-Start-Constraints

– Speicher extrem limitiert ist

– Du keine STOMP-Bibliotheken brauchst (eigener Protokoll-Stack)

Beide sind valide – die Wahl hängt von deinen spezifischen Anforderungen, nicht von besser/schlechter ab.

Der Code, d.h. die zwei Klassen für die STOMP-Demo sind in meinem Git-Repo zu finden.