---
title: "Référence d'API — @nodefony/realtime — cluster"
source: docs/api/realtime/cluster.md
url: https://nodefony.github.io/nodefony-core/docs/api/realtime/cluster/
---


[Documentation](../../../) › [Référence d'API](../../) › [`@nodefony/realtime`](../) › cluster

> Générée depuis les déclarations de types publiées de `@nodefony/realtime` **10.0.0-beta.5** : exactement ce que reçoit une application qui l'installe. Cette page n'existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

## `@nodefony/realtime`

`import { … } from "@nodefony/realtime"` — 8 symboles.

### Classes (1)

#### `ClusterProbeClient`

```ts
class ClusterProbeClient
```

Client de sonde cluster **côté worker** (Phase 4c) — le pendant de `ClusterProbeAggregator` (master). Deux rôles : - **report** : envoie périodiquement sa santé per-instance au master (`CLUSTER_PROBE_KIND`) ; - **cache** : reçoit le snapshot agrégé du master (`CLUSTER_PROBE_SNAPSHOT_KIND`) et le garde → n'importe quel worker sert la vue POD en O(1) (modèle push : 0 latence de requête).

- `constructor(transport?: IClusterProbeTransport, intervalMs?: number)`
- `start(buildOwn: () => IRealtimeHealth): void` — Démarre le report périodique + l'écoute des snapshots.
- `requestEnrich(pid: number, enable: boolean, facet?: ClusterProbeFacet): void` — Demande au master d'(arrêter d')enrichir le worker `pid` sur une **facette** (drill-down).
- `getClusterHealth(): IRealtimeClusterHealth | null` — Vue POD agrégée, ou `null` tant qu'aucun snapshot n'est reçu (cold start).
- `stop(): void` — Arrête le report et purge le cache.

### Fonctions (5)

#### `clusterProbeHealth`

```ts
function clusterProbeHealth(): IRealtimeClusterHealth | null
```

Vue POD agrégée si la sonde cluster est branchée ET a reçu un snapshot, sinon `null`. `null` ⇒ l'endpoint santé sert la vue per-instance (mono-process / sonde désactivée / cold start). Lecture pure, jamais throw.

#### `clusterProbeInstance`

```ts
function clusterProbeInstance(pid: number): IRealtimeHealth | null
```

Santé d'UN worker `pid` extraite du dernier snapshot pod (avec sa sonde riche si le drill est actif), ou `null` (mono-process, pid inconnu, ou cold start). Lecture pure.

#### `clusterProbeRequestEnrich`

```ts
function clusterProbeRequestEnrich(pid: number, enable: boolean, facet?: ClusterProbeFacet): boolean
```

Demande au master d'(arrêter d')enrichir le worker `pid` sur une **facette** (drill-down Phase 2). Facettes indépendantes : `"process"` (supervision) et `"orm"` (drill ORM).

#### `mergeClusterHealth`

```ts
function mergeClusterHealth(instances: IRealtimeHealth[], ts?: number): IRealtimeClusterHealth
```

Consolide N santés per-instance en une vue **POD** (`IRealtimeClusterHealth`). Pur (aucune I/O) : somme les scalaires ; la backpressure `maxBufferedAmount` est un MAX (le pire worker), `totalBufferedAmount`/`slowConsumers` des sommes.

#### `setClusterProbeClient`

```ts
function setClusterProbeClient(client: ClusterProbeClient): ClusterProbeClient
```

Branche le client de sonde cluster du process (worker). Remplace un éventuel précédent.

### Constantes (1)

#### `processProbeTransport`

```ts
const processProbeTransport: IClusterProbeTransport
```

Transport de production : `process.send` + `process.on("message")`.

### Interfaces (1)

#### `IClusterProbeTransport`

```ts
interface IClusterProbeTransport
```

Transport IPC de la sonde cluster côté worker — abstrait `process.send` / la réception des snapshots du master, derrière un seam **injectable** (même pattern que `IClusterBackplaneTransport`). Permet de tester le report + le cache **sans forker**.

- `send(report: unknown): void` — Émet une remontée de sonde vers le master (worker → master).
- `onReceive(cb: (msg: unknown) => void): void` — Enregistre le récepteur des snapshots agrégés du master (master → worker).

---

[← Toutes les références d'API](../../)
