Persoonlijk oefenproject -- Dit is een persoonlijk leerproject om ervaring op te doen met Claude Code en de agent skills van developer.overheid.nl en Logius Standaarden. Het is geen officieel product van Logius, BZK of enige andere overheidsorganisatie.
Referentie-implementatie van een eigen berichtenmagazijn voor het Federatief Berichtenstelsel (FBS), inclusief een FBS Client SDK. Dit project laat zien hoe een overheidsorganisatie een eigen FBS-compliant berichtenmagazijn kan bouwen en berichten kan uitwisselen binnen het stelsel. Het berichtenmagazijn biedt opslag, routering en ophalen van berichten aan burgers en ondernemers, conform de standaarden van Logius/BZK.
- Eigen berichtenmagazijn -- FBS-compliant berichtenopslag en -beheer
- FBS Client SDK -- Kotlin-bibliotheek voor integratie met het FBS
- NLGov API Design Rules -- Volledig conform de verplichte REST API-richtlijnen
- FSC (Federated Service Connectivity) -- Federatieve API-connectiviteit via OpenFSC
- LDV (Logboek Dataverwerkingen) -- Audit logging conform OpenTelemetry/OTLP
- CloudEvents NL GOV profiel -- Gestandaardiseerde event-notificaties
- Haven/Kubernetes deployment ready -- Containerized voor het Logius Standaard Platform
Het project bestaat uit de volgende componenten:
federatief-berichtenstelsel/
services/
berichtenmagazijn/ # Eigen berichtenmagazijn (core service)
berichtenlijst/ # Berichtenlijst Service (aggregatie & routering)
admin-dashboard/ # Beheer dashboard
libs/
fbs-client-sdk/ # FBS Client SDK (Kotlin library)
fbs-common/ # Gedeelde modellen en utilities
fbs-authzen-client/ # FTV/AuthZEN autorisatie client
fbs-ldv/ # Logboek Dataverwerkingen integratie
fbs-cloudevents/ # CloudEvents NL GOV profiel
openapi/ # OpenAPI specificaties
| Service | Beschrijving |
|---|---|
| Berichtenmagazijn | Kern berichtenopslag: berichten ontvangen, opslaan, doorzoeken en ophalen |
| Berichtenlijst | Aggregeert berichtrecords met routering naar gedistribueerde opslaglocaties |
| Admin Dashboard | Beheer- en monitoringinterface |
Externe services (niet in dit project):
- Notificatie Service, Profiel Service — aparte repositories bij MinBZK
- AuthZEN/FTV — federatieve toegangsverlening
| Library | Beschrijving |
|---|---|
| FBS Client SDK | Kotlin-bibliotheek voor het aanspreken van FBS-diensten |
| FBS Common | Gedeelde domeinmodellen, DTOs en hulpfuncties |
| FBS AuthZEN Client | Client voor FTV/AuthZEN autorisatiebeslissingen |
| FBS LDV | Logboek Dataverwerkingen integratie (OpenTelemetry/OTLP) |
| FBS CloudEvents | CloudEvents NL GOV profiel implementatie |
- JDK 21+
- Docker en Docker Compose
- Gradle 8.x (of gebruik de meegeleverde Gradle wrapper)
# Clone de repository
git clone https://github.com/ericwout-overheid/moza-fbs-berichtenbox.git
cd moza-fbs-berichtenbox
# Start de infrastructuur (PostgreSQL, MinIO, Kafka)
docker compose -f infrastructure/docker-compose.deps.yml up -d
# Bouw het project
./gradlew build
# Start het berichtenmagazijn
./gradlew :services:berichtenmagazijn:quarkusDevDe API is beschikbaar op http://localhost:8083/api/v1/.
# Alle tests (integratietests gebruiken Testcontainers, vereist Docker)
./gradlew test| Component | Technologie | Versie |
|---|---|---|
| Taal | Kotlin | 2.x |
| Framework | Quarkus | 3.x |
| Database | PostgreSQL | 16 |
| Objectopslag | MinIO (S3-compatible) | latest |
| Event streaming | Apache Kafka | 3.x |
| Federatieve connectiviteit | OpenFSC | latest |
| Build tool | Gradle (Kotlin DSL) | 8.x |
| Container runtime | Docker / Podman | - |
| Orchestratie | Kubernetes / Haven | - |
Dit project implementeert de volgende overheidsstandaarden:
| Standaard | Beschrijving | Link |
|---|---|---|
| FSC | Federated Service Connectivity | Specificatie |
| FTV | Federatieve Toegangsverlening (AuthZEN) | Specificatie |
| LDV | Logboek Dataverwerkingen | Specificatie |
| Digikoppeling | REST-API Koppelvlakstandaard | Specificatie |
| NLGov ADR | API Design Rules | Specificatie |
| CloudEvents | NL GOV profiel voor CloudEvents | Specificatie |
De architectuur is beschreven als C4 model in docs/architecture/workspace.dsl (Structurizr DSL).
# Start Structurizr Lite op http://localhost:8080
docker run --rm -p 8080:8080 \
-v ./docs/architecture:/usr/local/structurizr \
structurizr/lite:latestLet op: stop eerst eventueel draaiende services op poort 8080, of kies een andere poort (bijv.
-p 8180:8080).
docker run --rm \
-v ./docs/architecture:/workspace \
structurizr/cli:latest validate -w /workspace/workspace.dslBij een push naar GitHub genereert de architecture.yml workflow automatisch een statische site.
Bijdragen zijn welkom! Lees de CONTRIBUTING.md voor richtlijnen over hoe je kunt bijdragen aan dit project.
Dit project is gelicenseerd onder de European Union Public License v1.2 (EUPL-1.2).
- Project: github.com/ericwout-overheid/moza-fbs-berichtenbox
- Organisatie: Moza
- FBS informatie: Logius - Federatief Berichtenstelsel
- Developer portal: berichtenbox.dev