Quarkus Super Heroes

A sample application demonstrating Quarkus features and best practices. Superheroes fight against supervillains across multiple microservices communicating via REST, gRPC, and Kafka.

Architecture

The application consists of several microservices, communicating either synchronously via REST or asynchronously using Kafka. The base JVM version for all the applications is Java 21.

Superheroes architecture diagram

Services

Demo

Communication Flow

  • UI → rest-fights (REST)
  • rest-fights → rest-heroes, rest-villains, rest-narration (REST via SmallRye Stork)
  • rest-fights → grpc-locations (gRPC)
  • rest-fights → Kafka (Avro messages via Apicurio Registry)
  • event-statistics ← Kafka consumer

Observability

All services export traces, metrics, and logs via OpenTelemetry (OTLP) to the Grafana LGTM stack (Loki, Grafana, Tempo, Prometheus).

Getting Started

Read more here: Source link