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-graph (externe, statut incomplet)

Statut ambigu

adb-graph est référencé dans plusieurs configurations (FQDN, RabbitMQ, scripts Cypher) mais n'a pas de déploiement Kubernetes dans adb-charts, ni de route Ingress, ni de client Java consommateur dans adb-common. Le service existe vraisemblablement dans un dépôt externe et fonctionne hors-cluster (ou n'est plus actif).

Rôle (théorique)

Service qui maintiendrait un graphe Neo4j des relations entre les entités principales : personnes, parts, contrats, tickets. Permet des requêtes de type "qui est lié à qui" — par exemple trouver tous les contrats où une personne intervient à différents titres (locataire d'un bien, propriétaire d'un autre, garant d'un troisième).

Statut dans le monorepo

ÉlémentÉtat
Dossier au top-level❌
FQDN défini dans adb-common✓ GRAPH = http://adb-graph
Interface client Java❌ aucun fichier GraphClient*
Chart Helm❌ aucun template
Route Ingress❌ aucune route
Listed dans script de release✓ (version 0.4.0 mentionnée)
Documentation RabbitMQ✓ adb-charts/mq.md
Scripts Cypher✓ adb-charts/scripts/cypher_r4.cypher
Cluster Neo4j Terraform✓ adb-charts/terraform/

Architecture théorique

flowchart TB
    persons[adb-persons]
    parts[adb-parts]
    contracts[adb-contracts]
    tickets[adb-tickets]

    subgraph RabbitMQ
        E1[adb-persons-x]
        E2[adb-tickets-x]
        E3[parts events]
        E4[contracts events]
    end

    persons -.publish.-> E1
    tickets -.publish.-> E2
    parts -.publish.-> E3
    contracts -.publish.-> E4

    subgraph Queues["Queues consommées"]
        Q1[persons.graph]
        Q2[tickets.graph]
        Q3[parts.graph]
        Q4[contracts.graph]
    end

    E1 --> Q1
    E2 --> Q2
    E3 --> Q3
    E4 --> Q4

    graph[adb-graph<br/>service consommateur]

    Q1 --> graph
    Q2 --> graph
    Q3 --> graph
    Q4 --> graph

    Neo4j[(Neo4j cluster)]
    DLX[adb-graph-dlx<br/>Dead Letter Exchange]

    graph --> Neo4j
    graph -.failures.-> DLX

Configuration RabbitMQ

Documentée dans adb-charts/mq.md :

  • Exchanges sources :
    • adb-persons-x (headers exchange) — événements personnes.
    • adb-tickets-x (headers exchange) — événements tickets.
    • Channels par type pour parts (partCreateChannel, partUpdateChannel).
    • Channels pour contracts.
  • Queues consommées :
    • persons.graph
    • parts.graph
    • contracts.graph
    • tickets.graph
  • Dead-letter : adb-graph-dlx avec une DLQ par type d'événement.

⚠️ Note : la majorité des autres services utilisent AWS SQS/SNS (et non RabbitMQ). adb-graph est un héritage d'une architecture historique encore en place pour ce service.

Neo4j

Cluster Neo4j déployé via Terraform (adb-charts/terraform/). Scripts Cypher d'initialisation : adb-charts/scripts/cypher_r4.cypher.

Consommateurs

Aucun service du monorepo n'appelle directement adb-graph :

  • Pas de GraphClient dans adb-common.
  • Pas d'utilisation de FQDN.GRAPH dans le code Java.

L'UI pourrait potentiellement appeler /graph via la gateway pour des recherches relationnelles, mais aucune route Ingress n'est configurée.

À clarifier

  • Le service est-il encore actif ? Si oui, où est-il déployé (hors K8s, sur Neo4j Aura, ailleurs) ?
  • Si actif : pourquoi pas de route Ingress ?
  • Si inactif : pourquoi le cluster Neo4j et les exchanges RabbitMQ existent-ils encore ?
  • À terme, faut-il réintégrer ce service dans le monorepo ou le dépréquer comme adb-notes ?

Liens

  • Doc RabbitMQ : adb-charts/mq.md
  • Scripts Cypher : adb-charts/scripts/cypher_r4.cypher
  • Terraform Neo4j : adb-charts/terraform/
Edit this page
Last Updated:
Contributors: gregory
Prev
adb-notes (déprécié)