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.graphparts.graphcontracts.graphtickets.graph
- Dead-letter :
adb-graph-dlxavec 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
GraphClientdansadb-common. - Pas d'utilisation de
FQDN.GRAPHdans 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/