evenement-valeur-liquidative
Événement (AsyncAPI) — version 0.1.0, convergé 0.1.0 — validé par François le 2026-07-18. Producteur : instruments. Consommateurs déclarés : carnet-ordres, tenue-de-compte.
Les faits publiés par le référentiel des instruments quand une valeur existe : la première publication d’une date de calcul, et la correction — une republication tracée, à motif obligatoire, qui ne remplace jamais silencieusement (l’ancienne valeur reste, l’applicable est le rang le plus élevé). L’émission est par tenant et par fait ; unicité tenant × instrument × date × rang. La devise ne publie jamais.
La spécification
Section intitulée « La spécification »asyncapi: 3.0.0info: title: instruments — l'événement de valeur liquidative version: 0.1.0 description: >- Les faits publiés par le référentiel des instruments quand une valeur existe : la première publication d'une date de calcul, et la correction — une republication tracée, à motif obligatoire, qui ne remplace jamais silencieusement (l'ancienne valeur reste, l'applicable est le rang le plus élevé). L'émission est par tenant et par fait ; unicité tenant × instrument × date × rang. La devise ne publie jamais. x-producteurs: - instruments x-consommateurs: - composant: carnet-ordres - composant: tenue-de-compte statut: déclaré — chantier de lecture non ouvert (valorisation = position × valeur à date)defaultContentType: application/jsonchannels: valeurLiquidative: address: instruments.valeur-liquidative description: >- Canal logique des valeurs du référentiel des instruments. L'ordre n'est garanti que par producteur (sequence strictement croissant), jamais entre producteurs. messages: valeurPubliee: $ref: '#/components/messages/valeurPubliee' valeurCorrigee: $ref: '#/components/messages/valeurCorrigee'operations: publierLesValeurs: action: send channel: $ref: '#/channels/valeurLiquidative' summary: Le référentiel des instruments publie un fait par valeur — publication ou correction. description: >- Chaque publication et chaque correction est un fait au passé, retenu en boîte d'envoi dans la transaction qui le produit ; livraison au moins une fois, consommateurs idempotents. messages: - $ref: '#/channels/valeurLiquidative/messages/valeurPubliee' - $ref: '#/channels/valeurLiquidative/messages/valeurCorrigee'components: messages: valeurPubliee: name: valeur-publiee title: Valeur publiée summary: La première valeur d'une date de calcul (rang 1). contentType: application/json payload: $ref: '#/components/schemas/evenementValeurPubliee' valeurCorrigee: name: valeur-corrigee title: Valeur corrigée summary: >- Une republication (rang ≥ 2), motivée — des opérations ont pu s'exécuter sur la valeur précédente : la régularisation aval est l'affaire du domaine Opérations. contentType: application/json payload: $ref: '#/components/schemas/evenementValeurCorrigee' 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 - identifiant - tenant - instrument - nature - date_calcul - rang - valeur_part_ue6 - sorte - cree_le - cree_par properties: type_evenement: type: string description: Le type du fait — valeur-publiee ou valeur-corrigee. version_contrat: type: string description: La version du présent contrat (SemVer). sequence: type: integer minimum: 1 description: >- Le numéro d'ordre par producteur, strictement croissant — fourni par la boîte d'envoi. identifiant: type: string minLength: 1 description: L'identifiant unique du fait. tenant: type: string minLength: 1 description: Le teneur de compte — l'émission est par tenant (cloisonnement strict). instrument: type: string minLength: 1 description: L'identifiant publié de l'instrument. nature: type: string enum: [opcvm, ccb] description: La nature — jamais devise, qui ne publie pas. date_calcul: type: string format: date description: La date de calcul de la valeur. rang: type: integer minimum: 1 description: Le rang de publication pour la date — l'applicable est le plus élevé. valeur_part_ue6: type: integer minimum: 1 description: La valeur d'une part, en micro-euros (entier — jamais de flottant). sorte: type: string enum: [marche, administree] description: >- D'où vient la valeur — reçue du marché (OPCVM) ou administrée (CCB) ; l'appariement à la nature est structurel. cree_le: type: string format: date-time description: La piste d'audit — quand. cree_par: type: string minLength: 1 description: La piste d'audit — qui. evenementValeurPubliee: allOf: - $ref: '#/components/schemas/socleDEvenement' - type: object properties: type_evenement: const: valeur-publiee rang: const: 1 evenementValeurCorrigee: allOf: - $ref: '#/components/schemas/socleDEvenement' - type: object required: [motif] properties: type_evenement: const: valeur-corrigee rang: type: integer minimum: 2 motif: type: string minLength: 1 description: >- Le motif de la correction — obligatoire : corriger n'est jamais un écrasement discret.