Skip to main content

Choosing dependencies

All modules share the group id ch.admin.bit.jeap; versions are managed by the jEAP Spring Boot parent, so declare dependencies without a <version>. The full module list is in jeap-messaging. This page maps common needs to the artifact you depend on.

Core

You want to…Depend on
Produce and consume messages over Kafkajeap-messaging-infrastructure-kafka
Compile against the Avro message model only (e.g. in a shared message library)jeap-messaging-avro
Use the MessageListener / MessagePublisher abstractionsbrought in transitively by jeap-messaging-infrastructure-kafka

jeap-messaging-infrastructure-kafka is the one artifact most services need. It transitively brings in jeap-messaging-infrastructure, jeap-messaging-avro, jeap-messaging-api and jeap-messaging-model.

Schema registry & cloud

You want to…Depend on / configure
Confluent Schema Registryincluded; configure schemaRegistryUrl — see Confluent
AWS Glue Schema Registryjeap-messaging-glue-schema-registry — see AWS Glue
AWS MSK IAM authenticationjeap-messaging-aws-msk-iam-auth — see MSK IAM

Optional features

You want to…Depend on
Automatic idempotent message handlingjeap-messaging-idempotence — see Idempotent message handler
Generate Java classes from Avro schemasjeap-messaging-avro-maven-plugin (build plugin) — see Avro Maven plugin
Message contract annotations on their ownjeap-messaging-contract-annotations (normally transitive via the generated message-type JARs)

Testing

You want to…Depend on (test scope)
EmbeddedKafka integration tests, TestMessageSender, TestKafkaListenerjeap-messaging-infrastructure-kafka-test
The same without OpenTelemetry tracingjeap-messaging-infrastructure-kafka-without-tracing-test

See Testing.

Message types

Generated message-type bindings are not part of this library — they are published by your program's Message Type Registry and consumed as separate dependencies, e.g. ch.admin.bit.jme.messagetype.jme:jme-declaration-created-event.