# BC Reporting
# Vue d'ensemble
# Stratégie & RÚgles
La stratĂ©gie de reporting pour cette architecture de rĂ©fĂ©rence est de dĂ©crire les mĂ©canismes gĂ©nĂ©riques par lesquels les donnĂ©es des BC clients peuvent ĂȘtre persistĂ©es et tenues Ă jour dans un Magasin de donnĂ©es de reporting, de sorte que les utilisateurs et les systĂšmes puissent ensuite consommer ces donnĂ©es directement du Magasin de donnĂ©es de reporting, ou via tout outil de reporting et/ou de tableau de bord connectĂ© Ă ce Magasin de donnĂ©es de reporting.
- Ce Magasin de donnĂ©es de reporting doit ĂȘtre accessible en Ă©criture uniquement du point de vue du switch, et en lecture seule par les composants externes.
- Les modĂšles de donnĂ©es du Magasin de donnĂ©es de reporting peuvent diffĂ©rer des modĂšles de donnĂ©es opĂ©rationnels internes utilisĂ©s par le switch ; si pertinent, pour des raisons de performance ou autres, plusieurs modĂšles pour les mĂȘmes donnĂ©es peuvent ĂȘtre rendus disponibles dans le Magasin de donnĂ©es de reporting â Ă l'instar de plusieurs projections ou vues.
- Un Composant de Reporting du BC Client, fourni par le switch, traduira les Ă©vĂ©nements internes et les modĂšles de donnĂ©es internes vers les modĂšles du magasin de donnĂ©es externe â ce composant peut ĂȘtre remplacĂ©, ou il peut mĂȘme en exister plusieurs pour un mĂȘme BC client.
- Un tel composant doit exister dans le BC Reporting pour tout BC Client dont les données sont rendues disponibles dans le Magasin de données de reporting.
- Tout envoi ou récupération directe de données depuis le BC Client source, ou ses magasins de données internes, vers le Magasin de données de reporting constitue une violation du principe de découplage et affectera négativement la maintenabilité du systÚme en raison de son couplage fort.
# Stratégies de reporting :
- BasĂ© sur les Ă©vĂ©nements â MĂ©thode privilĂ©giĂ©e â Sur le BC Reporting, un composant (gestionnaire d'Ă©vĂ©nements) Ă©coute les Ă©vĂ©nements pertinents depuis son BC associĂ© et transforme ces Ă©vĂ©nements en entrĂ©es dans le magasin de donnĂ©es de reporting â il peut y avoir plusieurs de ces composants par BC client, toutefois chacun doit ĂȘtre le seul responsable de l'Ă©criture d'un sous-ensemble des donnĂ©es de reporting.
- Push â Le BC client appelle l'API du Composant de Reporting correspondant afin d'envoyer les donnĂ©es ; cette API transforme et persiste les donnĂ©es dans le magasin de donnĂ©es de reporting ([^1] avec le BC source, c'est-Ă -dire, il doit y avoir une API par BC source).
- Pull â Sur le BC Reporting, un Composant de Reporting pour BC client (pilotĂ© par minuterie) appelle une API sur le BC source pour rĂ©cupĂ©rer ses donnĂ©es, qui sont ensuite persistĂ©es dans le magasin de donnĂ©es de reporting ([^1] avec le BC source).
Pour les BC critiques en performance, il faut toujours privilégier la stratégie de reporting pilotée par les événements.
# RĂšgles minimales Ă respecter :
- Seul le Magasin de donnĂ©es de reporting doit ĂȘtre utilisĂ© pour le reporting et les tableaux de bord. Les systĂšmes externes ne sont pas autorisĂ©s Ă accĂ©der directement aux magasins de donnĂ©es internes des Bounded Contexts. L'accĂšs opĂ©rationnel pour les systĂšmes externes sera disponible via les API opĂ©rationnelles ou API d'interopĂ©rabilitĂ©.
- Les donnĂ©es sources internes des BC clients ne peuvent pas ĂȘtre « transmises » directement au Magasin de donnĂ©es de reporting : il doit y avoir une traduction entre la structure de donnĂ©es source et la structure de donnĂ©es de reporting, mĂȘme s'il n'y a pas de diffĂ©rence de structure. L'objectif est d'Ă©viter toute dĂ©pendance du cĂŽtĂ© reporting Ă la structure de donnĂ©es source.
# Ă faire
- DĂ©cider quels rapports initiaux et tableaux de bord doivent ĂȘtre inclus dans la fonctionnalitĂ© de reporting de base.
- Choisir des outils open source de reporting et de tableau de bord pour fournir cette fonctionnalité de base.
- Reporting de conformitĂ©/assurance â dĂ©finir certains de ces rapports de base (KYC, AML)
- Discuter de la « Surveillance des processus (et SLA) » et dĂ©cider si cela peut ĂȘtre fait au-dessus de la couche de reporting (la dĂ©finition des chiffres critiques, SLI & SLO, se fait par la configuration de la plateforme)
- Ajouter un lien vers l'API opérationnelle BC dans la section des rÚgles ci-dessus.
# Termes
Termes ayant une signification spécifique et communément acceptée dans le Contexte Borné dans lequel ils sont utilisés.
| Terme | Description |
|---|---|
| BC Client | Contexte Borné source (ou propriétaire) des données persistées dans le Magasin de données de reporting |
| Magasin de donnĂ©es de reporting | Data store(s) externe(s) (il peut y en avoir plusieurs) oĂč les donnĂ©es de reporting produites par les Composants de Reporting des BC Clients sont stockĂ©es et tenues Ă jour |
| Composant de Reporting du BC Client | Ce composant, qui peut prendre la forme d'un service, est responsable de la traduction du modÚle interne vers le(s) modÚle(s) externe(s) stocké(s) dans le Magasin de données de reporting |
| Outil de reporting ou de tableau de bord | Outils externes qui utilisent les données du Magasin de données de reporting comme source pour produire des rapports, des tableaux de bord ou toute autre tùche liée au reporting |
# Vue Fonctionnelle

Diagramme des fonctions BC : Vue fonctionnelle
# Cas d'Utilisation
# Reporting par événements (méthode privilégiée)
# Description
Stratégie pour alimenter le Magasin de données de reporting en ayant un Composant de Reporting du BC Client à l'écoute des événements internes et persistant les données de reporting correspondantes.
# Diagramme de flux

Diagramme du workflow UC : Reporting par événements (méthode privilégiée)
# Reporting par extraction (pull)
# Description
Stratégie pour alimenter le Magasin de données de reporting en faisant en sorte que le Composant de Reporting du BC Client aille chercher les données auprÚs de l'API du BC Client.
# Diagramme de flux

Diagramme du workflow UC : Reporting par extraction (pull)
# Reporting par envoi (push)
# Description
Stratégie pour alimenter le Magasin de données de reporting en ayant le BC client qui envoie à l'API du Composant de Reporting du BC Client les données à rapporter, puis ce composant traduit et persiste ces données.
# Diagramme de flux

Diagramme du workflow UC : Reporting par envoi (push)
# Consultation des rapports et tableaux de bord par l'utilisateur
# Description
Exemple de la maniĂšre dont un utilisateur peut consommer des rapports et des tableaux de bord.
# Diagramme de flux

Diagramme du workflow UC : Consommation utilisateur â reporting & dashboard
# Notes
[^1] : Interfaces communes : Liste des interfaces communes Mojaloop
