We are reorganizing the project and we disabled the Issues tab. Please use discussions from now on.
Hermes is an asynchronous message broker built on top of Kafka. We provide reliable, fault tolerant REST interface for message publishing and adaptive push mechanisms for message sending.
See our 10-minute getting started guide with Docker: Getting started
Visit our page: hermes.allegro.tech
See our full documentation: http://hermes-pubsub.readthedocs.org/en/latest/
If you have any question or idea regarding the project, please feel free to reach us out using GitHub discussions.
hermes is published under Apache License 2.0.
For code formatting we use google-java-format. Following steps are required for optimal dev experience in IJ:
Settings > google-java-format and click Enable google java-format (should be checked by default)Settings > Tools > Actions on Save and enable Reformat code and Optimize imports for Java filesEach save should automatically trigger reformat.
If you want to debug the CLI check on macOS:
wget https://github.com/google/google-java-format/releases/download/v1.23.0/google-java-format_darwin-arm64
chmod a+x google-java-format_darwin-arm64
chmod a+x .github/scripts/check-google-java-format.sh
./.github/scripts/check-google-java-format.sh
or if you are on Linux:
wget https://github.com/google/google-java-format/releases/download/v1.23.0/google-java-format_linux-x86-64
chmod a+x google-java-format_linux-x86-64
chmod a+x .github/scripts/check-google-java-format.sh
./.github/scripts/check-google-java-format.sh
You can also run the following command to fix formatting for the whole project:
./.github/scripts/check-google-java-format.sh --fix
Integration and slow integration tests use Testcontainers and require a Docker-compatible runtime. On macOS with Podman, export the following variables before running any test that requires containers:
export DOCKER_HOST="unix://$(podman machine inspect --format '{{.ConnectionInfo.PodmanSocket.Path}}')"
export TESTCONTAINERS_RYUK_DISABLED=true
Then run tests as usual, e.g.:
./gradlew slowIntegrationTest
./gradlew integrationTest
Podman VM resources:
slowIntegrationTestspawns many containers concurrently. Configure your Podman VM with at least 8 CPUs and 10 GB of memory or container startup may fail unexpectedly:
shell podman machine stop podman machine set --cpus 8 --memory 10240 podman machine start
Test reports are available at https://allegro.github.io/hermes/allure, and performance test results can be found at https://allegro.github.io/hermes/performance/.
$ claude mcp add hermes \
-- python -m otcore.mcp_server <graph>