<Self>(
tag: FleetHealthTag<Self>,
options?: FleetHealthOptions
): Layer.Layer<
| Handler<"status">
| Self
| Hyperlink.Local<Self>
| Handler<"local">
| Handler<"byNode">,
never,
Hyperlink.PeersId<Self> | Hyperlink.SelfNodeId<Self>
>Serve and grant the local instance — counterpart to Hyperlink.serve.
FleetHealth.serve(MeshHealth, { readiness }).pipe(
Layer.provide(Hyperlink.peersLayer(MeshHealth, DropletEast)),
)layers & servingHyperlink.serve
Source src/FleetHealth.ts:3664 lines
export const const serve: <Self>(
tag: FleetHealthTag<Self>,
options?: FleetHealthOptions
) => Layer.Layer<
| Self
| Hyperlink.Local<Self>
| Handler<"status">
| Handler<"local">
| Handler<"byNode">,
never,
| Hyperlink.PeersId<Self>
| Hyperlink.SelfNodeId<Self>
>
Serve and grant the local instance — counterpart to
Hyperlink.serve
.
FleetHealth.serve(MeshHealth, { readiness }).pipe(
Layer.provide(Hyperlink.peersLayer(MeshHealth, DropletEast)),
)
serve = <function (type parameter) Self in <Self>(tag: FleetHealthTag<Self>, options?: FleetHealthOptions): Layer.Layer<Self | Hyperlink.Local<Self> | Handler<"status"> | Handler<"local"> | Handler<...>, never, Hyperlink.PeersId<...> | Hyperlink.SelfNodeId<...>>Self>(
tag: FleetHealthTag<Self>(parameter) tag: {
key: Identifier;
Service: {
local: Effect.Effect<LocalHealth, never, never>;
byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>;
status: Effect.Effect<'ok' | 'degraded' | 'partial', never, never>;
};
description: string | undefined;
of: (this: void, self: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', n…;
context: (self: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never, never>…;
use: (f: (service: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never,…;
useSync: (f: (service: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never,…;
Identifier: Identifier;
stack: string | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
tag: type FleetHealthTag<Self> = Hyperlink.HyperlinkTag<Self, {
local: Hyperlink.Method<undefined, typeof LocalHealth, Schema.Never, false, Hyperlink.MethodAnnotations & {
description: string;
}, Hyperlink.Derive>;
byNode: Hyperlink.Marked<Hyperlink.Method<undefined, Schema.$Record<Schema.String, Schema.Union<readonly [typeof Reachable, typeof Unreachable]>>, Schema.Never, false, Hyperlink.MethodAnnotations & {
description: string;
}, Hyperlink.Derive>, {
readonly fleet: true;
}>;
status: Hyperlink.Marked<...>;
}, {
...;
}>
A FleetHealth instance tag.
FleetHealthTag<function (type parameter) Self in <Self>(tag: FleetHealthTag<Self>, options?: FleetHealthOptions): Layer.Layer<Self | Hyperlink.Local<Self> | Handler<"status"> | Handler<"local"> | Handler<...>, never, Hyperlink.PeersId<...> | Hyperlink.SelfNodeId<...>>Self>,
options: FleetHealthOptionsoptions?: FleetHealthOptions,
) => hyperlinkServe<Self, S extends Spec, R = never>(tag: HyperlinkTag<Self, S>, impl: ImplWithDefaultOverrides<S> | Driver<S, R> | Effect.Effect<ImplWithDefaultOverrides<S> | Driver<S, R>, never, R>): Layer.Layer<Self | Local<Self> | HandlerContextOf<S>, ValueErrorsOf<S>, R>Expose a
Tag
's implementation as an RPC server layer — the served counterpart of
layer
. Pair it with
Node.httpServer
/
Node.wsServer
(or
listen
) to
put it on a transport, and dial it with
client
/
connect
.
Shared-Spec instances (Tag(wireKey, spec) → Factory<Self>()(instanceKey)) share one
RpcGroup: Layer.mergeAll(serve(A, …), serve(B, …)) mounts handlers once and routes by
the per-call key header.
hyperlinkServe(tag: FleetHealthTag<Self>(parameter) tag: {
key: Identifier;
Service: {
local: Effect.Effect<LocalHealth, never, never>;
byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>;
status: Effect.Effect<'ok' | 'degraded' | 'partial', never, never>;
};
description: string | undefined;
of: (this: void, self: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', n…;
context: (self: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never, never>…;
use: (f: (service: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never,…;
useSync: (f: (service: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never,…;
Identifier: Identifier;
stack: string | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
tag, const buildImpl: <Self>(
tag: FleetHealthTag<Self>,
options?: FleetHealthOptions
) => Effect.Effect<
{
readonly local: Effect.Effect<LocalHealth>
readonly byNode: Effect.Effect<
Readonly<Record<string, NodeReport>>
>
readonly status: Effect.Effect<FleetStatus>
},
never,
PeersId<Self> | SelfNodeId<Self>
>
Served impl — resolves peers/self once; members close over them (Telemetry twin).
buildImpl(tag: FleetHealthTag<Self>(parameter) tag: {
key: Identifier;
Service: {
local: Effect.Effect<LocalHealth, never, never>;
byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>;
status: Effect.Effect<'ok' | 'degraded' | 'partial', never, never>;
};
description: string | undefined;
of: (this: void, self: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', n…;
context: (self: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never, never>…;
use: (f: (service: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never,…;
useSync: (f: (service: { readonly local: Effect.Effect<LocalHealth, never, never>; readonly byNode: Effect.Effect<{ readonly [x: string]: Reachable | Unreachable }, never, never>; readonly status: Effect.Effect<'ok' | 'degraded' | 'partial', never,…;
Identifier: Identifier;
stack: string | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
tag, options: FleetHealthOptionsoptions));