Life ConnectLife Connect
Table of contents
Architecture
Services
Swagger Docs
GitHub
Table of contents
Architecture
Services
Swagger Docs
GitHub
  • Backend (Java / Spring Boot)

    • adb (parent Maven + proxy)
    • adb-persons
    • adb-parts
    • adb-contracts
    • adb-accounting
    • adb-files
    • adb-utilities
    • adb-aggregates
    • adb-views
    • adb-reports
  • Frontend

    • adb-ui
    • adb-web
  • Infrastructure & Outillage

    • adb-charts
    • adb-infrastructure
    • adb-tests-artillery
    • adb-doc
  • Services externes (hors monorepo)

    • adb-tickets (externe)
    • adb-notes (déprécié)
    • adb-graph (externe, statut incomplet)

adb (parent Maven + proxy)

Rôle

adb/ est le projet parent du backend Java. Il fournit :

  1. Un POM parent qui centralise les versions de Spring Boot, Spring Cloud, des dépendances communes (MapStruct, Lombok, Apache POI, etc.), et des plugins Maven.
  2. Huit modules partagés consommés par tous les microservices : adb-common, adb-model, adb-test, adb-actions, adb-action-logs, adb-descriptor, adb-messaging, adb-openapi, adb-communication.
  3. Le reverse proxy Nginx (proxy/) qui sert d'API gateway pour la plateforme.

Aucun service exécutable n'est défini ici : c'est exclusivement de la librairie partagée et de la configuration.

Stack

ÉlémentVersion
Java18
Spring Boot3.1.3
Spring Cloud2022.0.4
Maven3.6+
MapStruct1.5.5.Final
Lombok1.18.28
Logstash Logback6.6
SpringDoc OpenAPI2.2.0
Apache POI5.2.3
Commons Validator1.8.0
Spring Cloud AWS3.0.4

Version actuelle du parent : 0.3.107-SNAPSHOT.

Architecture des modules

flowchart TB
    parent[adb<br/>parent POM]

    subgraph Modules
        common[adb-common<br/>FQDN, RequestContext]
        model[adb-model<br/>DTOs partagés]
        test[adb-test<br/>helpers tests]
        actions[adb-actions<br/>action processor]
        actionlogs[adb-action-logs<br/>traçabilité]
        descriptor[adb-descriptor<br/>métadonnées]
        messaging[adb-messaging<br/>SQS/SNS abstractions]
        openapi[adb-openapi<br/>specs + codegen]
        communication[adb-communication<br/>WebClient helpers]
    end

    proxy[proxy<br/>Nginx]

    parent --> Modules
    parent --> proxy

    Services[adb-persons<br/>adb-parts<br/>adb-contracts<br/>...]

    common -.dependency.-> Services
    model -.dependency.-> Services
    messaging -.dependency.-> Services
    actions -.dependency.-> Services
    actionlogs -.dependency.-> Services

adb-common

Cœur du module : l'enum FQDN (fr.lifeconnect.adb.client.FQDN), annuaire de tous les services internes :

ConstanteURL
PERSONShttp://adb-persons
ORGANIZATIONShttp://adb-persons
PARTShttp://adb-parts
CONTRACTShttp://adb-contracts
ACCOUNTINGhttp://adb-accounting
FILEShttp://adb-files
UTILITIEShttp://adb-utilities
AGGREGATEShttp://adb-aggregates
VIEWShttp://adb-views
REPORTShttp://adb-reports
TICKETShttp://adb-tickets
NOTEShttp://adb-notes
GRAPHhttp://adb-graph
NOTIFICATIONShttp://adb-notifications
UIhttp://adb-ui
UI_EXThttp://adb-ui-ext

Contient également : RequestContextData (propagation du contexte utilisateur), interfaces clients (NotesClient, TicketsClient …), utilitaires divers.

adb-model

DTOs partagés entre services pour éviter la duplication des structures de données métier.

adb-messaging

Abstractions au-dessus de Spring Cloud AWS pour publier (SnsTemplate) et consommer (@SqsListener) des événements. Configure les region, les serializers JSON, les DLQ.

adb-actions / adb-action-logs

  • adb-actions : framework pour déclencher et tracer des actions métier (modifications, validations).
  • adb-action-logs : persistance des logs d'actions dans MongoDB (collection dédiée par service).

Utilisés par adb-persons, adb-parts, adb-contracts, adb-accounting, adb-utilities.

adb-openapi

Génère les specs OpenAPI à partir des annotations Spring (SpringDoc). Sert de source pour le client TypeScript de adb-web/packages/api-client.

adb-test, adb-descriptor, adb-communication

  • adb-test : helpers pour les tests d'intégration (TestContainers, fixtures Mongo).
  • adb-descriptor : métadonnées de modules (version, dépendances).
  • adb-communication : helpers WebClient réactifs (RestClientImpl, retry, error mapping).

proxy/ — Nginx gateway

Configuration Nginx (proxy/default.conf) qui route les requêtes externes vers les services internes :

PathCible
/persons/*adb-persons
/parts/*adb-parts
/contracts/*adb-contracts
/accounting/*adb-accounting
/files/*adb-files
/utilities/*adb-utilities
/aggregates/*adb-aggregates
/view/*adb-views
/reports/*adb-reports
/tickets/*adb-tickets
/notes/*adb-tickets (redirige — adb-notes déprécié)

Configuration & déploiement

  • Build : mvn clean install -pl adb-common,adb-model,adb-messaging,... ou mvn install à la racine.
  • Versionnement : SNAPSHOT pendant développement, release via le script adb/doc/release.md.
  • Déploiement du proxy : chart Helm adb-charts/charts/ingress-route/ et image Docker construite depuis proxy/Dockerfile.

Liens

  • Code : adb/
  • POM parent : adb/pom.xml
  • Enum FQDN : adb/adb-common/src/main/java/fr/lifeconnect/adb/client/FQDN.java
Edit this page
Last Updated:
Contributors: gregory
Next
adb-persons