# 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 d'ensemble fonctionnel du reporting

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 UC reporting événementiel

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 UC reporting par extraction

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 UC reporting par envoi

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 de consommation de rapports / dashboard utilisateur

Diagramme du workflow UC : Consommation utilisateur – reporting & dashboard

# Notes

[^1] : Interfaces communes : Liste des interfaces communes Mojaloop