Watch
1
0
Fork
You've already forked jeap-messaging
0
mirror of https://github.com/jeap-admin-ch/jeap-messaging.git synced 2026-08-17 12:55:20 +00:00
Read-only mirror of https://github.com/jeap-admin-ch/jeap-messaging — Bundesamt für Informatik und Telekommunikation. Issues & pull requests at the source. Catalog: https://www.opensource.admin.ch/en/softwares/m6b2eg https://www.opensource.admin.ch/en/softwares/m6b2eg
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-13 08:52:43 +02:00
.mvn/wrapper JEAP-6898 Update java and plugin versions in messagetype pom template 2026-05-22 10:40:11 +02:00
.run JEAP-5168 Implement message sequencing in the sequential inbox 2025-03-04 18:28:53 +01:00
docs JEAP-7293 Restore silentIgnoreWithoutContract flag behaviour 2026-07-23 12:05:52 +02:00
jeap-messaging-api Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-avro JEAP-7107: move plugin management to internal parent 2026-08-13 08:52:43 +02:00
jeap-messaging-avro-compiler Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-avro-errorevent Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-avro-maven-plugin JEAP-7107: move plugin management to internal parent 2026-08-13 08:52:43 +02:00
jeap-messaging-avro-test Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-avro-validator Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-aws-msk-iam-auth Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-confluent-schema-registry Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-contract-annotation-processor Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-contract-annotations Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-contract-maven-plugin JEAP-7107: move plugin management to internal parent 2026-08-13 08:52:43 +02:00
jeap-messaging-glue-schema-registry Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-idempotence Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-infrastructure Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-infrastructure-kafka Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-infrastructure-kafka-test JEAP-7107: move plugin management to internal parent 2026-08-13 08:52:43 +02:00
jeap-messaging-infrastructure-kafka-without-tracing-test Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-model Version 17.12.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 07:56:29 +02:00
jeap-messaging-registry-maven-plugin JEAP-7107: move plugin management to internal parent 2026-08-13 08:52:43 +02:00
.gitignore JEAP-5051: Use different base ports for embedded kafka in ReactiveKafka tests 2024-12-02 11:04:26 +01:00
AGENTS.md [skip ci] JEAP-7064 Add docs 2026-06-18 16:26:05 +02:00
CHANGELOG.md Version 17.12.0: update jeap-crypto from 10.12.0 to 10.13.0 2026-08-13 08:48:04 +02:00
CONTRIBUTING.md jEAP OSS preparation 2024-12-06 08:27:27 +01:00
LICENSE JEAP-5051: Use different base ports for embedded kafka in ReactiveKafka tests 2024-12-02 11:04:26 +01:00
mvnw JEAP-5051: Use different base ports for embedded kafka in ReactiveKafka tests 2024-12-02 11:04:26 +01:00
pom.xml JEAP-7107: move plugin management to internal parent 2026-08-13 08:52:43 +02:00
publiccode.yml Update version/date in publiccode.yml 2026-08-13 07:59:38 +02:00
README.md [skip ci] JEAP-7064 Add docs 2026-06-18 16:26:05 +02:00
SECURITY.md jEAP OSS preparation 2024-12-06 08:27:27 +01:00
setPomVersions.sh JEAP-5051: Use different base ports for embedded kafka in ReactiveKafka tests 2024-12-02 11:04:26 +01:00
THIRD-PARTY-LICENSES.md Updating THIRD-PARTY-LICENSES.md 2026-08-13 07:58:03 +02:00

jEAP Messaging

jEAP Messaging is a library for sending and receiving messages over Apache Kafka in Spring Boot applications. It builds on Spring for Apache Kafka and Avro, and lets a microservice produce and consume strongly-typed events and commands with minimal boilerplate. It provides:

  • A structured definition of message types using Avro schemas and message-type descriptors
  • Avro serialization of message types to Kafka records
  • Pre-configured Spring Kafka beans for producers and consumers (single- and multi-cluster)
  • Declaration of consumed/produced message types on topics using Java annotations (message contracts)
  • Built-in error handling that never loses a message (integration with a jeap-error-handling-service)
  • Idempotent message handling, message signing and encryption, and a Kafka broker health indicator

For the transactional outbox pattern see the separate jeap-messaging-outbox library.

Documentation

Start with Getting started, then follow the links below.

Topic File
Getting started (add the dependency, produce & consume) docs/getting-started.md
Architecture & three-layer model docs/architecture.md
Choosing dependencies docs/dependencies.md
Configuration reference (jeap.messaging.kafka.*) docs/configuration.md
Message types (events & commands) docs/message-types.md
Defining messages in Avro docs/defining-messages.md
Avro Maven plugin docs/avro-maven-plugin.md
Schema evolution docs/message-evolution.md
Message Type Registry docs/message-type-registry.md
Publishing messages docs/publishing-messages.md
Consuming messages docs/consuming-messages.md
Kafka how-to (integrate Kafka into a service) docs/kafka-how-to.md
Kafka topics & client configuration docs/kafka-topics-and-configuration.md
Message contracts docs/message-contracts.md
Idempotent message handler docs/idempotent-message-handler.md
Error handling docs/error-handling.md
Confluent Schema Registry docs/schema-registry-confluent.md
AWS Glue Schema Registry docs/schema-registry-aws-glue.md
AWS MSK IAM authentication docs/aws-msk-iam-authentication.md
Signing messages docs/signing-messages.md
Encrypting messages docs/encrypting-messages.md
Message filtering docs/message-filtering.md
Health indicators docs/health-indicators.md
Testing docs/testing.md

Modules

The artifact most consumers depend on is jeap-messaging-infrastructure-kafka. Group id for all modules is ch.admin.bit.jeap; the version is managed by the jEAP Spring Boot parent.

Module Purpose
jeap-messaging-model Infrastructure-independent interfaces for domain events and commands
jeap-messaging-api MessageListener / MessagePublisher interfaces
jeap-messaging-avro Avro implementation of the model: AvroMessage, builders, AvroSerializationHelper
jeap-messaging-avro-maven-plugin Generates Java classes from Avro schemas / the Message Type Registry
jeap-messaging-avro-compiler, -validator, -test Internal Avro compilation, validation and test support
jeap-messaging-avro-errorevent Avro types for the error-handling integration
jeap-messaging-infrastructure Core Kafka infrastructure: serialization, signing, crypto, tracing, metrics, health, error handling
jeap-messaging-infrastructure-kafka Spring Boot auto-configuration; the main consumer-facing artifact
jeap-messaging-infrastructure-kafka-test Test fixtures: TestMessageSender, TestKafkaListener, KafkaIntegrationTestBase
jeap-messaging-infrastructure-kafka-without-tracing-test Test fixtures for services that do not use tracing
jeap-messaging-confluent-schema-registry Confluent Schema Registry integration
jeap-messaging-glue-schema-registry AWS Glue Schema Registry integration
jeap-messaging-aws-msk-iam-auth AWS MSK IAM authentication
jeap-messaging-idempotence @IdempotentMessageHandler with a JPA-backed processing store and housekeeping
jeap-messaging-contract-annotations Message-contract annotations
jeap-messaging-contract-annotation-processor Annotation processor generating the contract JSON uploaded during the build
jeap-messaging-contract-maven-plugin Maven plugin for message contracts
jeap-messaging-registry-maven-plugin Verifies and exports a Message Type Registry

Changes

This library is versioned using Semantic Versioning and all changes are documented in CHANGELOG.md following the format defined in Keep a Changelog.

Note

This repository is part the open source distribution of jEAP. See github.com/jeap-admin-ch/jeap for more information.

License

This repository is Open Source Software licensed under the Apache License 2.0.