Aller au contenu
English

ObservationHub

import type { ObservationHub } from "@elie-laloum/outpost";
  • scopeRequis
    ObservationScope
    Champs de corrélation immuables hérités par les émissions de ce hub.
  • errorsRequis
    readonly unknown[]
    Collection partagée et bornée des erreurs de récepteur, sérialisation, saturation et délai ; conserve les 100 premières indépendamment de l’exécution.
  • droppedRequis
    number
    Compteur partagé des livraisons perdues par les récepteurs, notamment lors de saturation ou de désactivation.
  • verboseRequis
    boolean
    Autorise les producteurs à émettre les requêtes et réponses modèle complètes ; la conservation dans le journal se configure séparément.
  • emitRequis
    (source: ObservationSource, event: ObservationEvent) => void
    Attribue à un événement un seq, un horodatage, sa source et le scope de ce hub, puis en remet une copie aux sinks hérités et locaux. Sans effet après close() ; les échecs des sinks vont dans errors et ne sont jamais levés.
  • childRequis
    (scope: ObservationScope, sinks?: readonly ObservationSink[]) => ObservationHub
    Crée un enfant contextualisé partageant séquence et diagnostics de livraison, avec des récepteurs supplémentaires limités à cet enfant et ses descendants.
  • flushRequis
    () => Promise<void>
    Vide les livraisons présentes à l’appel et les récepteurs enregistrés avec des attentes bornées ; les émissions ultérieures appartiennent à un appel suivant.
  • closeRequis
    () => Promise<void>
    Arrête les émissions de cet enfant et de ses descendants, vide ses livraisons et détache ses récepteurs sans fermer ceux du parent appartenant à l’appelant.
export interface ObservationHub {
  readonly scope: ObservationScope;
  readonly errors: readonly unknown[];
  readonly dropped: number;
  readonly verbose: boolean;
  emit(source: ObservationSource, event: ObservationEvent): void;
  child(
    scope: ObservationScope,
    sinks?: readonly ObservationSink[],
  ): ObservationHub;
  flush(): Promise<void>;
  close(): Promise<void>;
}