Aller au contenu

evenements-du-compte

Événement (AsyncAPI) — version 0.1.0, proposition. Producteur : tenue-de-compte. Consommateurs déclarés : aucun déclaré à ce jour.

Les faits publiés par la tenue de compte quand l’état d’un compte change : ouvert, clos. Le cycle est court et définitif — un compte ne se supprime jamais, il se clôt (avoirs liquidés exigés) ; un compte clos ne se rouvre pas. Chaque fait ne transporte que les identifiants : la fiche du compte se consulte (contrat consultation-des-entites), elle ne se duplique pas sur le bus.

asyncapi: 3.0.0
info:
title: tenue-de-compte — les événements du cycle de vie du Compte
version: 0.1.0
description: >-
Les faits publiés par la tenue de compte quand l'état d'un compte change : ouvert,
clos. Le cycle est court et définitif — un compte ne se supprime jamais, il se clôt
(avoirs liquidés exigés) ; un compte clos ne se rouvre pas. Chaque fait ne transporte
que les identifiants : la fiche du compte se consulte (contrat
consultation-des-entites), elle ne se duplique pas sur le bus.
x-producteurs:
- tenue-de-compte
x-consommateurs: []
defaultContentType: application/json
channels:
compte:
address: tenue-de-compte.compte
description: >-
Canal logique du cycle de vie des comptes de la tenue de compte. L'ordre n'est
garanti que par producteur (sequence strictement croissant), jamais entre
producteurs.
messages:
compteOuvert:
$ref: '#/components/messages/compteOuvert'
compteClos:
$ref: '#/components/messages/compteClos'
operations:
publierLeCycleDeVieDuCompte:
action: send
channel:
$ref: '#/channels/compte'
summary: La tenue de compte publie un événement par changement d'état d'un compte.
messages:
- $ref: '#/channels/compte/messages/compteOuvert'
- $ref: '#/channels/compte/messages/compteClos'
components:
messages:
compteOuvert:
name: compte-ouvert
title: Compte ouvert
summary: Un compte a été ouvert au plan du tenant.
contentType: application/json
payload:
$ref: '#/components/schemas/evenementCompteOuvert'
compteClos:
name: compte-clos
title: Compte clos
summary: Un compte a été clos — définitivement, ses avoirs liquidés.
contentType: application/json
payload:
$ref: '#/components/schemas/evenementCompteClos'
schemas:
socleDEvenement:
type: object
# Les consommateurs sont tolérants : un champ inconnu s'ignore —
# le schéma n'interdit donc pas les propriétés additionnelles.
required:
- type_evenement
- version_contrat
- sequence
- tenant
- compte
- produit_le
properties:
version_contrat:
type: string
description: La version sémantique du présent contrat (celle de ce fichier).
sequence:
type: integer
minimum: 1
description: >-
Le numéro de séquence chez le producteur — strictement croissant, fourni par
la boîte d'envoi ; un consommateur y détecte un manque ou un désordre.
tenant:
type: string
minLength: 1
description: Le teneur de compte — la muraille de Chine.
compte:
type: string
minLength: 1
description: >-
L'identifiant public du compte dont l'état a changé — avec le tenant et le
type, l'identifiant unique de déduplication des consommateurs (un compte
s'ouvre une fois, se clôt une fois).
produit_le:
type: string
format: date-time
description: L'instant de la retenue de l'événement (UTC) — la survenance du fait.
evenementCompteOuvert:
allOf:
- $ref: '#/components/schemas/socleDEvenement'
- type: object
properties:
type_evenement:
const: compte-ouvert
evenementCompteClos:
allOf:
- $ref: '#/components/schemas/socleDEvenement'
- type: object
properties:
type_evenement:
const: compte-clos