Aller au contenu
English

createObservationHub

import { createObservationHub } from "@elie-laloum/outpost";

Crée un hub racine qui numérote chaque événement dans une séquence partagée et en remet une copie à chaque sink via sa propre file bornée. Passez-le dans observation d’un workflow ou d’un dispatch : les exécutions émettent via des enfants scopés, et la racine vous appartient, à vous de la fermer. Les échecs et pertes des sinks sont collectés, jamais levés ; le hub ne stocke rien.

Exemple complet et règles détaillées.

  • optionsOptionnel
    ObservationHubOptions | undefined
    Récepteurs, contexte initial, limites de livraison et activation des contenus modèle détaillés.
  • options.sinksOptionnel
    readonly ObservationSink[] | undefined
    Récepteurs rattachés à cette racine et hérités par chaque enfant.
  • options.scopeOptionnel
    ObservationScope | undefined
    Champs de corrélation initiaux ; les enfants ne remplacent que les champs explicitement fournis.
  • options.capacityOptionnel
    number | undefined
    Nombre maximal d’événements en attente par sink asynchrone, 1024 par défaut ; en cas de débordement, les plus récents sont abandonnés et comptés. Une valeur qui n’est pas un entier positif lève une erreur.
  • options.deliveryTimeoutMsOptionnel
    number | undefined
    Attente maximale d’une livraison asynchrone ou du flush d’un sink, 5000 par défaut ; un sink qui la dépasse est désactivé pour toute la durée du hub. Une valeur qui n’est pas un entier positif lève une erreur.
  • options.verboseOptionnel
    boolean | undefined
    Autorise explicitement les événements de requête/réponse modèle complets. N’active pas à lui seul leur conservation dans le journal.

ObservationHub

export declare function createObservationHub(
  options?: ObservationHubOptions,
): ObservationHub;