evenement-d-instrument
É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 : operations.
Les faits du cycle d’un événement de la vie d’un instrument — annoncé, prononcé (les caractéristiques arrêtées et figées, la charge typée par le type d’événement), dénoué, annulé (avant le prononcé seulement). Émis une seule fois par tenant et par fait (amendement du 2026-07-18 — cloisonnement strict), jamais par porteur : la déclinaison par porteur appartient aux consommateurs, cloisonnée. Le mécanisme d’une OST n’émet aucun ordre — l’événement porte tout ce que la déclinaison exige.
La spécification
Section intitulée « La spécification »asyncapi: 3.0.0info: title: instruments — l'événement d'instrument (le cycle des OST) version: 0.1.0 description: >- Les faits du cycle d'un événement de la vie d'un instrument — annoncé, prononcé (les caractéristiques arrêtées et figées, la charge typée par le type d'événement), dénoué, annulé (avant le prononcé seulement). Émis une seule fois par tenant et par fait (amendement du 2026-07-18 — cloisonnement strict), jamais par porteur : la déclinaison par porteur appartient aux consommateurs, cloisonnée. Le mécanisme d'une OST n'émet aucun ordre — l'événement porte tout ce que la déclinaison exige. x-producteurs: - instruments x-consommateurs: - composant: operationsdefaultContentType: application/jsonchannels: evenement: address: instruments.evenement description: >- Canal logique du cycle des événements d'instrument. L'ordre du cycle est garanti par entité (sequence par producteur) ; unicité tenant × événement × type de fait. messages: evenementAnnonce: $ref: '#/components/messages/evenementAnnonce' evenementPrononce: $ref: '#/components/messages/evenementPrononce' evenementDenoue: $ref: '#/components/messages/evenementDenoue' evenementAnnule: $ref: '#/components/messages/evenementAnnule'operations: publierLeCycleDesEvenements: action: send channel: $ref: '#/channels/evenement' summary: Le référentiel des instruments publie un fait par transition du cycle. description: >- Chaque transition est un fait au passé, retenu en boîte d'envoi dans la transaction qui le produit ; livraison au moins une fois, consommateurs idempotents ; un cycle ne publie jamais deux fois la même transition. messages: - $ref: '#/channels/evenement/messages/evenementAnnonce' - $ref: '#/channels/evenement/messages/evenementPrononce' - $ref: '#/channels/evenement/messages/evenementDenoue' - $ref: '#/channels/evenement/messages/evenementAnnule'components: messages: evenementAnnonce: name: evenement-annonce title: Événement annoncé summary: La décision est annoncée — calendrier connu, caractéristiques non figées. contentType: application/json payload: $ref: '#/components/schemas/faitAnnonce' evenementPrononce: name: evenement-prononce title: Événement prononcé summary: >- Les caractéristiques sont arrêtées et figées — le message porteur, typé par le type d'événement ; toute correction ultérieure est un nouvel événement correctif. contentType: application/json payload: $ref: '#/components/schemas/faitPrononce' evenementDenoue: name: evenement-denoue title: Événement dénoué summary: >- Le dénouement constaté — pour une fusion, il emporte la fin de vie des instruments absorbés. contentType: application/json payload: $ref: '#/components/schemas/faitDenoue' evenementAnnule: name: evenement-annule title: Événement annulé summary: Le renoncement — avant le prononcé seulement. contentType: application/json payload: $ref: '#/components/schemas/faitAnnule' schemas: socleDeFait: type: object # Les consommateurs sont tolérants : un champ inconnu s'ignore. required: - type_evenement - version_contrat - sequence - identifiant - tenant - evenement - type_d_evenement - annonce_le - effet_le - cree_le - cree_par properties: type_evenement: type: string description: Le type du fait — la transition du cycle. 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 — 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. evenement: type: string minLength: 1 description: L'identifiant publié de l'événement d'instrument (l'entité sujet). type_d_evenement: type: string enum: [fusion, scission, reajustement, distribution] description: Le type de la décision — structure ou revenu. annonce_le: type: string format: date effet_le: type: string format: date etabli_par_document: type: string description: La cause — le document qui établit la décision, s'il existe. corrige: type: string description: La cause — l'événement corrigé, pour un événement correctif. cree_le: type: string format: date-time cree_par: type: string minLength: 1 decisionFusion: type: object required: [absorbant, absorbes] properties: absorbant: type: string minLength: 1 description: L'identifiant publié du fonds absorbant. absorbes: type: array minItems: 1 items: type: object required: [instrument, parite_p6] properties: instrument: type: string minLength: 1 parite_p6: type: integer minimum: 1 description: La parité d'échange, en millionièmes — arrêtée au prononcé. decisionScission: type: object required: [source, cibles] properties: source: type: string minLength: 1 cibles: type: array minItems: 1 items: type: object required: [instrument, cle_repartition_p6] properties: instrument: type: string minLength: 1 cle_repartition_p6: type: integer minimum: 1 description: La clé de répartition, en millionièmes — les clés somment à l'unité. decisionReajustement: type: object required: [fonds, coefficient_p6] properties: fonds: type: string minLength: 1 coefficient_p6: type: integer minimum: 1 description: Le coefficient de division ou de regroupement, en millionièmes. decisionDistribution: type: object required: [fonds, coupon_part_ue6] properties: fonds: type: string minLength: 1 coupon_part_ue6: type: integer minimum: 1 description: >- Le coupon par part, en micro-euros — la forme (versée / réinvestie) et la fiscalité attendent la capture au référentiel. decision: description: La charge typée par le type d'événement — le chapeau et ses types. oneOf: - $ref: '#/components/schemas/decisionFusion' - $ref: '#/components/schemas/decisionScission' - $ref: '#/components/schemas/decisionReajustement' - $ref: '#/components/schemas/decisionDistribution' faitAnnonce: allOf: - $ref: '#/components/schemas/socleDeFait' - type: object properties: type_evenement: const: evenement-annonce faitPrononce: allOf: - $ref: '#/components/schemas/socleDeFait' - type: object required: [decision] properties: type_evenement: const: evenement-prononce decision: $ref: '#/components/schemas/decision' faitDenoue: allOf: - $ref: '#/components/schemas/socleDeFait' - type: object required: [denoue_le] properties: type_evenement: const: evenement-denoue denoue_le: type: string format: date faitAnnule: allOf: - $ref: '#/components/schemas/socleDeFait' - type: object properties: type_evenement: const: evenement-annule