← Index des services · SI FGA · spécification de service

svc-compensation-engine

Catégorie : Métier  ·  Périmètre : PR2 · moteur de calcul (isolé)  ·  Module : services/svc-compensation-engine (monorepo fga-services — ADR-0001)  ·  Stack : Java · Quarkus · Gradle · YAML  ·  Architecture : hexagonale

1. Rôle et responsabilités

Moteur de calcul paramétrable des indemnités : barèmes versionnés, règles de calcul, simulation, traçabilité complète de chaque calcul (version de barème, entrées, résultat). Service pur sans état de dossier : mêmes entrées, même résultat. Validé par la DJGS sur un jeu de cas de référence rejoué à chaque livraison.

2. Modèle de domaine (agrégats)

CompensationScaleScaleVersionAwardCalculation

3. API exposée

/v1/calculations (calcul et simulation)/v1/scales/v1/scales/{id}/versions

API REST versionnée, contrat OpenAPI généré et versionné avec le service. Authentification par jeton Keycloak (JWT RS256) validé par le service (Quarkus OIDC).

4. Événements publiés

5. Événements consommés

Aucun

Topics sigfga.<service>.<aggregate> · enveloppe CloudEvents 1.0 · publication via outbox pattern · consommateurs idempotents (déduplication par event id).

6. Dépendances synchrones

Aucun

7. Flux principal

svc-compensation-engine · flux principalrecevoir une demande de calcul(POST /v1/calculations)charger la version active du barèmeretourner l'erreur détailléenonentrées valides ?exécuter les règles de calcultracer entrées · version de barème · résultatpublieraward.calculatedretourner le résultatoui

8. Backlog Jira rattaché

Backlog v2 (16/07/2026) : toujours aucun ticket rattaché à ce service.

Zéro ticket : 1 seule mention du mot « barème » dans tout le backlog. Backlog à créer en premier (vague 2), en exigeant les barèmes et le manuel de procédures PR2 comme préalables.

MAJ backlog v2 (16/07/2026) — Toujours aucun ticket — 3 tickets « barème » seulement dans tout le programme : le blocage barèmes DJGS demeure entier.

9. Implémentation

Structure hexagonale standard : domain (modèle, événements, services purs, sans dépendance framework), application (use cases, ports in/out, transactions), adapter (in/rest, in/messaging, out/persistence, out/messaging, out/client). Dépendances verrouillées par test ArchUnit. Base de données dédiée (schéma PostgreSQL propre), migrations Liquibase (changesets exclusivement en SQL formaté — ADR-0002). Code intégralement en anglais ; textes utilisateur en fichiers i18n français.