This repository contains a demo of an application that uses Kroxylicious to encrypt data that will be written to Kafka.
The demo contains:
- A Confluent Kafka broker cluster
- Confluent Control Center to illustrate encrypted vs unencrypted data
- A Kroxylicious implementation
- A Quarkus application that produces and consumes weather information
Docker Compose is used to control the components - see the docker-compose.yaml file for more info.
The demo consists of two parts - a producer:
- The Quarkus weather application produces random weather reading on a topic in Json format. Quarkus connects to the Kroxylicious proxy
- The Kroxylicious application encrypts the data using keys stored in Hashicorp vault
- Kroxylicious produces messages using the Kafka brokers
...and a consumer:
- The Quarkus weather application consumers records from the weather reading requestin records from Kroxylicious
- Kroxylicious reads an encrypted message from the broker
- Kroxylicious decrypts the message using keys stored in Hashicorp vault
The repository is a Gradle multi module project.
To build the project:
> ./gradlew clean build
To run the project using Docker Compose:
> docker compose build
> docker compose up -d