Quarkus-SSE is a high-performance server using Quarkus, designed for real-time event streaming with Server-Sent Events (SSE). Its reactive architecture delivers fast, scalable solutions for cloud-native apps, microservices, and real-time notifications, optimizing development and resource use.
To install Quarkus-SSE, follow these steps:
git clone https://github.com/microboxlabs/quarkus-sse.git
cd quarkus-sse
./mvnw install
This Quarkus application includes the smallrye-health extension, which automatically exposes the following health-related endpoints:
/q/health/live
: Indicates if the application is up and running./q/health/ready
: Shows if the application is ready to serve requests./q/health/started
: Confirms if the application has started./q/health
: Aggregates all health check procedures in the application.
The application provides the following endpoints for event emission and streaming:
POST /events/emit
: Emit a new event for broadcasting to all clients.GET /events/stream
: Stream all events that have been emitted to the server.GET /events/stream/{eventType}
: Stream events that match a specific event type.GET /events/tenant/{tenantId}/stream
: Stream events for a specific tenant.GET /events/tenant/{tenantId}/stream/{eventType}
: Stream events for a specific tenant and event type.
This project uses Quarkus, the Supersonic Subatomic Java Framework.
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/.
You can run your application in dev mode that enables live coding using:
./mvnw compile quarkus:dev
NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.
The application can be packaged using:
./mvnw package
It produces the quarkus-run.jar
file in the target/quarkus-app/
directory.
Be aware that it’s not an über-jar as the dependencies are copied into the target/quarkus-app/lib/
directory.
The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar
.
If you want to build an über-jar, execute the following command:
./mvnw package -Dquarkus.package.jar.type=uber-jar
The application, packaged as an über-jar, is now runnable using java -jar target/*-runner.jar
.
You can create a native executable using:
./mvnw package -Dnative
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
./mvnw package -Dnative -Dquarkus.native.container-build=true
You can then execute your native executable with: ./target/quarkus-sse-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.
This project is licensed under the MIT License - see the LICENSE file for details.