waldemar lammert 997504e444 initial commit
2026-01-29 11:32:44 +01:00
2026-01-29 11:32:44 +01:00
2026-01-29 11:32:44 +01:00
2026-01-29 11:32:44 +01:00
2026-01-29 11:32:44 +01:00
2026-01-29 11:32:44 +01:00
2026-01-29 11:32:44 +01:00
2026-01-29 11:32:44 +01:00
2026-01-28 15:32:39 +01:00
2026-01-29 11:32:44 +01:00
2026-01-29 11:32:44 +01:00

EventProducer

Spring Boot starter application that publishes JSON events to RabbitMQ topic exchanges (no stream plugins required). The project uses Spring Boot 4.0.2 with Java 21.

Prerequisites

  • JDK 21 or newer
  • Locally running RabbitMQ broker reachable at the host/port set in src/main/resources/application.yml

Useful Commands

  • ./gradlew bootRun — start the application
  • ./gradlew test — run the test suite
  • ./gradlew build — create an executable jar in build/libs

Configuration

  • RabbitMQ connection + exchange name are defined in application.yml. Override via the exposed environment variables below or your own profile files.
  • All messages are sent to the configured topic exchange; routing keys come from the request path.
Environment Variable Default Description
RABBITMQ_HOST mit.loc Broker hostname
RABBITMQ_PORT 5672 Broker port
RABBITMQ_USERNAME producer Username for broker auth
RABBITMQ_PASSWORD producer Password for broker auth
RABBITMQ_EXCHANGE dev.insurance.health.request Topic exchange the producer targets
RABBITMQ_QUEUE dev.insurance.health.request.queue Queue bound to the topic exchange
RABBITMQ_ROUTING_KEY dev.insurance.health.request.route Default routing key for /api/events/messages

Sending Events

curl --request POST http://localhost:8080/api/events/orders.created \
  --header 'Content-Type: application/json' \
  --data '{
    "eventType": "order-created",
    "payload": {
      "orderId": "12345",
      "total": 42.50
    }
  }'

Sending Simple Messages

curl --request POST http://localhost:8080/api/events/messages \
  --header 'Content-Type: application/json' \
  --data '{
    "message": "hello topic queue"
  }'

API Docs

  • OpenAPI JSON: http://localhost:8080/api-docs
  • Swagger UI: http://localhost:8080/swagger-ui

If you ever remove the Gradle wrapper, run gradle wrapper once (requires Gradle locally) so that subsequent builds can use ./gradlew.

Description
No description provided
Readme Apache-2.0 88 KiB
Languages
Java 100%