Skip to content

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.

License

Notifications You must be signed in to change notification settings

microboxlabs/quarkus-sse

Repository files navigation

quarkus-sse

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.

License Build Status

Table of Contents

Features

Installation

To install Quarkus-SSE, follow these steps:

git clone https://github.com/microboxlabs/quarkus-sse.git
cd quarkus-sse
./mvnw install

Usage

Configuration

API Reference

Health and Liveness Endpoints

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.

Event Stream Endpoints

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.

Contributing

This project uses Quarkus, the Supersonic Subatomic Java Framework.

If you want to learn more about Quarkus, please visit its website: https://quarkus.io/.

Running the application in dev mode

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/.

Packaging and running the application

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.

Creating a native executable

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.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages