Paisy — Technology Stack
Languages & Runtimes
| Technology |
Version |
Usage |
| Java |
17 (compiler release) |
All backend modules |
| JavaScript/Node.js |
Node 24 (Chainguard) |
Answering-machine React frontend |
| Groovy |
(Jenkins) |
Jenkinsfile pipeline scripting |
| JavaScript |
ES6+ |
gen_trigger.js — Quidam ISAM trigger generation |
| SQL |
H2 + Oracle dialects |
Database migrations and queries |
Build System
| Tool |
Details |
| Maven |
Multi-module POM, ${revision} for version injection |
| Maven Wrapper |
Not used — relies on CI image Maven |
| npm |
Frontend build for am-frontend/ |
Key Maven Commands
Frameworks & Libraries
Core
| Library |
Version |
Purpose |
| Spring Boot |
3.5.11 |
Application framework |
| Spring Shell |
3.3.3 |
CLI command dispatch |
| Lombok |
(managed) |
Boilerplate reduction (@Data, @Builder, @Slf4j) |
| H2 Database |
2.4.240 |
Dev/on-prem embedded database |
| Flyway |
(Spring Boot managed) |
Database migrations |
| JPA/Hibernate |
(Spring Boot managed) |
ORM layer |
Data Processing
| Library |
Purpose |
| JAXB |
XML marshalling/unmarshalling for GKV data exchange |
| Apache Commons CSV |
Semicolon-delimited CSV (ISO-8859-1) |
Custom flatfile-parser |
German flat-file format with @Datenbaustein/@DBField annotations |
Infrastructure
| Technology |
Purpose |
| NATS JetStream |
Message broker (subject: {bbnr}.{ak}.{app}.{stage}[.{type}]) |
| Docker |
Container builds for AM, Meldezentrale, NATS |
| Kubernetes (EKS) |
Cloud deployment target |
| Helm |
Kubernetes deployment charts (ferris-wheel/web-service) |
CI/CD
| Component |
Details |
| Jenkins |
Pipeline-as-code via Jenkinsfile |
| Jenkins Library |
@Library('adp-jenkins') — shared pipeline library |
| Docker Images |
maven:3.9-jdk-17 (main), maven:3.8.3-jdk-11 (kernpruefung-rest) |
| Artifactory |
repository.esi.adp.com/RD-GERMANY/ — Maven + Docker registry |
| SonarQube |
Code quality scanning (non-release branches) |
| Secrets Scan |
secretsScan() in pipeline |
Pipeline Stages
- Wartungswechsel — version rotation across past/current/future branches
- Build — Maven compile + test for
java/pom.xml
- Sonar + Secrets — quality gate + secrets detection
- Docker Build — AM, Meldezentrale, NATS (parallel)
- Cherry-pick — auto-propagate merges upward (past→current→future)
- Deploy — Artifactory publish + Kubernetes deploy
- Tag Release — Git tag on release branches
- Version Update — auto-bump patch version
- EusanGen — standalone sanctions list update (manual or
eusan/* branch trigger)
Database
| Mode |
Engine |
Usage |
| Development |
H2 (file-based) |
Local dev, testing, legacy on-prem |
| Production |
Oracle |
Multi-tenant, shared schema per BBNR |
Migration Naming Convention
Separate directories: db/migration/ORACLE/ and db/migration/H2/
Encoding
- Source files: UTF-8
- CSV files: ISO-8859-1 (German government standard)
- Flat files: ISO-8859-1 (DSRV/ITSG format)
Docker Registry
| Image |
Registry Path |
| Answering Machine |
docker.repository.esi.adp.com/paisy/answering-machine |
| Meldezentrale |
docker.repository.esi.adp.com/paisy/meldezentrale |
| NATS |
docker.repository.esi.adp.com/paisy/nats |
| Kernprüfung REST |
docker.repository.esi.adp.com/paisy/kernpruefung-rest-service |
Kubernetes Clusters
| Cluster |
Namespace |
Purpose |
eks-awsadpworldiat-pr |
paisyservices-dit |
DIT environment (AM, MZ, NATS) |
eks-awsdev6 |
pa-kernpruefung-rest-service-dev |
Dev (Kernprüfung REST) |