@spider-mesh/core 2.0.45 → 2.0.146
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -26
- package/build/src/Registry.d.ts +1 -0
- package/build/src/Registry.js +3 -1
- package/build/src/Registry.js.map +1 -1
- package/build/src/RemoteService.d.ts +3 -3
- package/build/src/SpiderMesh.d.ts +5 -7
- package/build/src/SpiderMesh.js +63 -44
- package/build/src/SpiderMesh.js.map +1 -1
- package/build/src/index.d.ts +1 -1
- package/build/src/types.d.ts +5 -4
- package/build/tests/fixtures/process-mesh.js +15 -2
- package/build/tests/fixtures/process-mesh.js.map +1 -1
- package/build/tests/mock-e2e.test.js +46 -3
- package/build/tests/mock-e2e.test.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,9 +6,9 @@ It provides:
|
|
|
6
6
|
|
|
7
7
|
- local microservice registration with decorators
|
|
8
8
|
- typed remote service linking through proxies
|
|
9
|
-
- RPC, discovery, and
|
|
10
|
-
- a `
|
|
11
|
-
- a `
|
|
9
|
+
- RPC, discovery, pubsub, and `ServiceDirectory` transporter contracts
|
|
10
|
+
- a `SpiderMesh` runtime for local services, transporters, and node metadata (no registry required)
|
|
11
|
+
- a `Registry` helper for transports that route client-side
|
|
12
12
|
- NestJS helper adapters
|
|
13
13
|
|
|
14
14
|
Concrete transport implementations live in companion packages such as `@spider-mesh/tcp` and `@spider-mesh/ws`, or in your own custom transporters.
|
|
@@ -23,23 +23,28 @@ For TypeScript projects using decorators, enable decorator metadata in your comp
|
|
|
23
23
|
|
|
24
24
|
## Runtime Setup
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
`SpiderMesh` takes no constructor arguments — it does not own a registry. Availability
|
|
27
|
+
(`wait()`/`watch()`/`nodes`) is sourced from each transporter's `ServiceDirectory`, and
|
|
28
|
+
routing is owned by the transport.
|
|
27
29
|
|
|
28
30
|
```ts
|
|
29
|
-
import {
|
|
31
|
+
import { SpiderMesh } from '@spider-mesh/core'
|
|
30
32
|
|
|
31
|
-
const
|
|
32
|
-
const mesh = new SpiderMesh(registry)
|
|
33
|
+
const mesh = new SpiderMesh()
|
|
33
34
|
```
|
|
34
35
|
|
|
35
|
-
Register transporter instances on the runtime
|
|
36
|
+
Register transporter instances on the runtime. Transports that route client-side (like
|
|
37
|
+
`@spider-mesh/tcp`) keep their own peer table — construct one `Registry` and inject it
|
|
38
|
+
into them; relay-based transports (like `@spider-mesh/ws`) need nothing:
|
|
36
39
|
|
|
37
40
|
```ts
|
|
41
|
+
import { Registry } from '@spider-mesh/core'
|
|
38
42
|
import { Http2Pubsub, Http2Rpc, UdpDiscovery } from '@spider-mesh/tcp'
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
mesh.registerTransporter(new
|
|
42
|
-
mesh.registerTransporter(new
|
|
44
|
+
const registry = new Registry()
|
|
45
|
+
mesh.registerTransporter(new UdpDiscovery(registry))
|
|
46
|
+
mesh.registerTransporter(new Http2Rpc(registry))
|
|
47
|
+
mesh.registerTransporter(new Http2Pubsub(registry))
|
|
43
48
|
```
|
|
44
49
|
|
|
45
50
|
Transporter capability is inferred by instance shape:
|
|
@@ -47,6 +52,7 @@ Transporter capability is inferred by instance shape:
|
|
|
47
52
|
- `send()` => RPC transporter
|
|
48
53
|
- `publish()` => pubsub transporter
|
|
49
54
|
- `broadcast()` => discovery transporter
|
|
55
|
+
- `watchService()` + `listNodes()` => `ServiceDirectory` (availability source for `wait()`/`watch()`/`nodes`)
|
|
50
56
|
|
|
51
57
|
## Local Services
|
|
52
58
|
|
|
@@ -196,21 +202,38 @@ Current event behavior:
|
|
|
196
202
|
- last unsubscribe removes the topic from local node metadata
|
|
197
203
|
- discovery transporters rebroadcast node metadata after topic changes
|
|
198
204
|
|
|
199
|
-
## Registry
|
|
205
|
+
## Registry (transport helper)
|
|
200
206
|
|
|
201
|
-
`
|
|
207
|
+
`SpiderMesh` no longer owns or depends on a `Registry`. It is exported as an optional
|
|
208
|
+
**helper for transports that route client-side**: such a transport constructs its own
|
|
209
|
+
`Registry`, feeds it from its discovery stream, and exposes it to core as a
|
|
210
|
+
`ServiceDirectory`. `@spider-mesh/tcp` does exactly this; relay transports
|
|
211
|
+
(`@spider-mesh/ws`) need no registry at all.
|
|
202
212
|
|
|
203
|
-
|
|
213
|
+
Public methods:
|
|
204
214
|
|
|
205
215
|
- `getPeer(nodeId)`
|
|
206
216
|
- `upsertPeer(node)`
|
|
207
217
|
- `removePeer(nodeId)`
|
|
208
218
|
- `listPeers(service?)`
|
|
209
219
|
- `watch(service?)`
|
|
210
|
-
- `pickRpcNode(service, { node_id? })`
|
|
220
|
+
- `pickRpcNode(service, { node_id?, filter? })` — round-robin; `filter(node)` lets a transport exclude peers it cannot route to yet (e.g. a provider whose RPC endpoint port isn't advertised)
|
|
211
221
|
- `getRpcTransporterName(service)`
|
|
212
222
|
- `listTopicNodes(topic)`
|
|
213
223
|
|
|
224
|
+
## ServiceDirectory
|
|
225
|
+
|
|
226
|
+
A transporter MAY implement `ServiceDirectory` to tell core which nodes serve a service.
|
|
227
|
+
Core merges this across all registered transporters to answer `wait()` / `watch()` / `nodes`,
|
|
228
|
+
without owning any peer state itself.
|
|
229
|
+
|
|
230
|
+
```ts
|
|
231
|
+
type ServiceDirectory = {
|
|
232
|
+
watchService(service: string): Observable<NodeRef[]> // emit current state promptly (BehaviorSubject semantics)
|
|
233
|
+
listNodes(service: string): NodeRef[] // sync snapshot; [] if the transport cannot enumerate
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
214
237
|
## Transporter Contracts
|
|
215
238
|
|
|
216
239
|
The contract source of truth is `src/types.ts`.
|
|
@@ -219,11 +242,12 @@ The contract source of truth is `src/types.ts`.
|
|
|
219
242
|
|
|
220
243
|
```ts
|
|
221
244
|
type RpcTransporter = Observable<RpcEvent> & {
|
|
222
|
-
|
|
223
|
-
send(data: RpcRequestPacket | RpcCancelPacket | RpcResponsePacket): Promise<{ cancel: () => void }>
|
|
245
|
+
send(data: RpcRequestPacket | RpcResponsePacket): Promise<{ cancel: () => void }>
|
|
224
246
|
}
|
|
225
247
|
```
|
|
226
248
|
|
|
249
|
+
The core contract `send()` accepts only `request` and `response` packets. Cancellation is exposed through the `cancel()` function returned by `send()`, not by passing a `RpcCancelPacket` to `send()`. A concrete transporter may translate that `cancel()` into a `RpcCancelPacket` on the wire (for example `@spider-mesh/tcp`), but that is a transport-internal detail.
|
|
250
|
+
|
|
227
251
|
`send()` returns a `cancel` function. For `request` packets, calling `cancel()` sends a `RpcCancelPacket` to the destination node, which causes the provider to stop any running stream. For `response` and `cancel` packets the returned `cancel` is a no-op.
|
|
228
252
|
|
|
229
253
|
`SpiderMesh` calls `cancel()` automatically when a subscriber unsubscribes from a stream that has not yet completed.
|
|
@@ -263,7 +287,6 @@ type RpcCancelPacket = {
|
|
|
263
287
|
type PubsubTransporter = Observable<PubsubEvent> & {
|
|
264
288
|
publish<T>(topic: string, data: T): Promise<void>
|
|
265
289
|
listen<T>(topic: string): Observable<T>
|
|
266
|
-
linkRegistry?(registry: Registry): void
|
|
267
290
|
}
|
|
268
291
|
```
|
|
269
292
|
|
|
@@ -271,7 +294,6 @@ type PubsubTransporter = Observable<PubsubEvent> & {
|
|
|
271
294
|
|
|
272
295
|
```ts
|
|
273
296
|
type DiscoveryTransporter = Observable<DiscoveryEvent> & {
|
|
274
|
-
linkRegistry?(registry: Registry): void
|
|
275
297
|
broadcast(data: MdnsMessage<NodeMetadata>): Promise<void>
|
|
276
298
|
}
|
|
277
299
|
```
|
|
@@ -330,12 +352,12 @@ import { Http2Pubsub, Http2Rpc, UdpDiscovery } from '@spider-mesh/tcp'
|
|
|
330
352
|
{
|
|
331
353
|
provide: SpiderMesh,
|
|
332
354
|
useFactory: () => {
|
|
355
|
+
const mesh = new SpiderMesh()
|
|
333
356
|
const registry = new Registry()
|
|
334
|
-
const mesh = new SpiderMesh(registry)
|
|
335
357
|
|
|
336
|
-
mesh.registerTransporter(new UdpDiscovery())
|
|
337
|
-
mesh.registerTransporter(new Http2Rpc())
|
|
338
|
-
mesh.registerTransporter(new Http2Pubsub())
|
|
358
|
+
mesh.registerTransporter(new UdpDiscovery(registry))
|
|
359
|
+
mesh.registerTransporter(new Http2Rpc(registry))
|
|
360
|
+
mesh.registerTransporter(new Http2Pubsub(registry))
|
|
339
361
|
|
|
340
362
|
return mesh
|
|
341
363
|
},
|
|
@@ -454,14 +476,37 @@ The core defines these error codes for RPC flows:
|
|
|
454
476
|
|
|
455
477
|
The package also exports:
|
|
456
478
|
|
|
457
|
-
- `LimitConcurrency(limit)` and `LimitConcurrentRunning(limit)` for throttling async method execution
|
|
458
|
-
- `MicroserviceError`
|
|
479
|
+
- `LimitConcurrency(limit)` and `LimitConcurrentRunning(limit)` for throttling async method execution (`LimitConcurrentRunning` is an alias of `LimitConcurrency`)
|
|
480
|
+
- `MicroserviceError` — a TypeScript **type only** describing the RPC error shape (`{ code: SpiderMeshErrorCode; message?: string }`). There is no runtime class or error-code constants object; the code strings live in the `SpiderMeshErrorCode` union (see [Error Model](#error-model)). Do not `import` it as a value.
|
|
481
|
+
|
|
482
|
+
## Usage Guidance
|
|
483
|
+
|
|
484
|
+
### Should
|
|
485
|
+
|
|
486
|
+
- **Keep `@spider-mesh/core` runtime-agnostic.** Put RPC/business contracts and runtime wiring here; import a concrete transport (`@spider-mesh/tcp`, `@spider-mesh/ws`, or your own) only at the composition root where you build `SpiderMesh`.
|
|
487
|
+
- **Construct local services to register them.** `@Microservice()` self-registers on construction — just call `new UserService()` (or let your DI container instantiate it). There is no separate `register()` call.
|
|
488
|
+
- **`await linker.wait()` before the first remote call.** Linking is lazy; `wait()` resolves once at least one provider node is known (or your predicate passes). Calling a remote method before a provider exists relies on `timeout`/`fallback` instead.
|
|
489
|
+
- **Define a typed contract for `RemoteServiceLinker.link<T>()`.** The proxy is only as safe as the `T` you give it; the runtime does not validate the remote signature.
|
|
490
|
+
- **Tune reliability per call with `.set({ timeout, retry, fallback })`** rather than hard-coding values, and provide a `fallback` when a degraded result is acceptable — `callRemoteService` short-circuits to `of(fallback)` on *any* caught error when `fallback !== undefined`.
|
|
491
|
+
- **Use `linkEvent(EventClass)` for pub/sub fan-out** and treat the event class name as the topic identity. Keep event classes stable across services.
|
|
492
|
+
- **Unsubscribe from remote streams you no longer need.** `SpiderMesh` cancels the in-flight provider stream when the last subscriber unsubscribes — leaked subscriptions keep provider work alive.
|
|
493
|
+
- **Force `node_id` only when you need sticky routing** (e.g. a stateful provider). Default routing is round-robin and that is what you want most of the time.
|
|
494
|
+
|
|
495
|
+
### Should not
|
|
496
|
+
|
|
497
|
+
- **Do not put socket/wire logic in core.** Transporters own byte transport, topic IO, and discovery broadcasts; core owns lifecycle, routing, timeout, retry, and cancel.
|
|
498
|
+
- **Do not `import { LOCAL_SERVICES$ }` or `MicroserviceList` from the package root** — they are internal module exports, not part of the public API.
|
|
499
|
+
- **Do not treat `MicroserviceError` as a runtime value.** It is a type alias; there is no class to `new` and no constants object to read codes from.
|
|
500
|
+
- **Do not assume `@Microservice({ version })` (or any service metadata) affects routing.** Metadata is free-form and opaque to selection; routing keys on the class name only. The typed node-level `version` is an internal monotonic counter, unrelated to this field.
|
|
501
|
+
- **Do not rely on multiple `SpiderMesh` instances in one process for isolation.** `LOCAL_SERVICES$` is process-global, so every mesh sees every local service. Use separate processes (and `SPIDERMESH_NAMESPACE`) to isolate.
|
|
502
|
+
- **Do not rename a service class casually.** Service identity — and therefore every remote link and route — is the class name. Renaming is a breaking change across the mesh.
|
|
503
|
+
- **Do not mutate `Registry` peer state directly** unless you are implementing a transporter; let discovery transporters populate it.
|
|
459
504
|
|
|
460
505
|
## Notes
|
|
461
506
|
|
|
462
507
|
- This package is ESM-only.
|
|
463
508
|
- Repository source uses emitted `.js` relative specifiers.
|
|
464
|
-
- `LOCAL_SERVICES$` is process-global inside one process.
|
|
509
|
+
- `LOCAL_SERVICES$` is process-global inside one process. It is an internal module stream, not re-exported from the package root — every `SpiderMesh` in the same process sees every `@Microservice()` instance constructed in that process.
|
|
465
510
|
- Local services are registered when their class instances are constructed.
|
|
466
511
|
- Service identity is based on the class name.
|
|
467
512
|
- Event topic identity is based on the event class name.
|
package/build/src/Registry.d.ts
CHANGED
package/build/src/Registry.js
CHANGED
|
@@ -64,7 +64,9 @@ export class Registry {
|
|
|
64
64
|
return null;
|
|
65
65
|
return node.node_id;
|
|
66
66
|
}
|
|
67
|
-
const targets =
|
|
67
|
+
const targets = options.filter
|
|
68
|
+
? this.listPeers(service).filter(options.filter)
|
|
69
|
+
: this.listPeers(service);
|
|
68
70
|
if (targets.length === 0)
|
|
69
71
|
return null;
|
|
70
72
|
const index = ((this.#rrIndexes.get(service) || 0) + 1) % targets.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../src/Registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../src/Registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,10 @@ export declare class RemoteServiceLinker<Service> {
|
|
|
12
12
|
private sm;
|
|
13
13
|
private options;
|
|
14
14
|
constructor(sm: SpiderMesh, options: RemoteServiceOptions);
|
|
15
|
-
watch(): Observable<
|
|
16
|
-
get nodes():
|
|
15
|
+
watch(): Observable<import("./types.js").NodeRef[]>;
|
|
16
|
+
get nodes(): import("./types.js").NodeRef[];
|
|
17
17
|
set<Fallback>(options: Omit<Partial<RpcOptions<Fallback>>, 'service' | 'method' | 'args'>): Mapper<Service, Fallback>;
|
|
18
|
-
wait(checker?: ServiceChecker, stop$?: Observable<any>): Promise<
|
|
18
|
+
wait(checker?: ServiceChecker, stop$?: Observable<any>): Promise<import("./types.js").NodeRef[] | null>;
|
|
19
19
|
static link<Service, Fallback = never>(sm: SpiderMesh, options: RemoteServiceOptions): Mapper<Service, Fallback>;
|
|
20
20
|
}
|
|
21
21
|
export type Mapper<Service, Fallback = unknown> = RemoteServiceLinker<Service> & ({
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
import { Observable, Subscription } from "rxjs";
|
|
2
|
-
import { SpiderMeshNode, RpcOptions, MeshTransporter } from './types.js';
|
|
3
|
-
import { Registry } from './Registry.js';
|
|
2
|
+
import { SpiderMeshNode, RpcOptions, MeshTransporter, NodeRef } from './types.js';
|
|
4
3
|
export type HelloEvent = SpiderMeshNode & {
|
|
5
4
|
back?: boolean;
|
|
6
5
|
};
|
|
7
|
-
export type ServiceChecker = (nodes:
|
|
6
|
+
export type ServiceChecker = (nodes: NodeRef[]) => Promise<boolean> | boolean;
|
|
8
7
|
export type NodesMap = {
|
|
9
8
|
nodes: Map<string, SpiderMeshNode>;
|
|
10
9
|
last_updated_node_id: string;
|
|
11
10
|
};
|
|
12
11
|
export declare class SpiderMesh {
|
|
13
12
|
#private;
|
|
14
|
-
private readonly registry?;
|
|
15
13
|
readonly node_id: string;
|
|
16
14
|
readonly namespace: string;
|
|
17
|
-
constructor(
|
|
15
|
+
constructor();
|
|
18
16
|
registerTransporter(meshTransporter: MeshTransporter, name?: string): Subscription;
|
|
19
|
-
listRpcNodes(service: string):
|
|
20
|
-
watchService(service: string): Observable<
|
|
17
|
+
listRpcNodes(service: string): NodeRef[];
|
|
18
|
+
watchService(service: string): Observable<NodeRef[]>;
|
|
21
19
|
callRemoteService<R, T>(options: RpcOptions<T>): Observable<R | T>;
|
|
22
20
|
linkEvent<T>(factory: {
|
|
23
21
|
new (...args: any[]): T;
|
package/build/src/SpiderMesh.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BehaviorSubject, catchError, EMPTY, finalize, firstValueFrom, from, lastValueFrom, map, mergeMap, Observable, of, retry, share, Subject, Subscription, switchMap, take, tap, throwError, timeout, timer } from "rxjs";
|
|
1
|
+
import { BehaviorSubject, catchError, combineLatest, distinctUntilChanged, EMPTY, finalize, firstValueFrom, from, lastValueFrom, map, mergeMap, Observable, of, retry, share, Subject, Subscription, switchMap, take, tap, throwError, timeout, timer } from "rxjs";
|
|
2
2
|
import { listBeforeMicroserviceOnlineMethods } from "./decorators/BeforeMicroserviceOnline.js";
|
|
3
3
|
import { LOCAL_SERVICES$ } from "./decorators/Microservice.js";
|
|
4
4
|
import { SPIDERMESH_NAMESPACE, SPIDERMESH_NODE_HOSTNAME } from "../const.js";
|
|
@@ -9,7 +9,6 @@ const isNamedTransporter = (value) => {
|
|
|
9
9
|
return !!value && typeof value === 'object';
|
|
10
10
|
};
|
|
11
11
|
export class SpiderMesh {
|
|
12
|
-
registry;
|
|
13
12
|
node_id = `${Date.now().toString(36).toUpperCase()}|${Math.random().toString(36).slice(10).toUpperCase()}`;
|
|
14
13
|
namespace = SPIDERMESH_NAMESPACE;
|
|
15
14
|
#transporters = {
|
|
@@ -32,8 +31,7 @@ export class SpiderMesh {
|
|
|
32
31
|
pending: new Map(),
|
|
33
32
|
running: new Map()
|
|
34
33
|
};
|
|
35
|
-
constructor(
|
|
36
|
-
this.registry = registry;
|
|
34
|
+
constructor() {
|
|
37
35
|
LOCAL_SERVICES$.pipe(mergeMap(async (service) => {
|
|
38
36
|
const list = listBeforeMicroserviceOnlineMethods(service.instance);
|
|
39
37
|
for (const method of list) {
|
|
@@ -52,9 +50,6 @@ export class SpiderMesh {
|
|
|
52
50
|
|| (isNamedTransporter(meshTransporter) ? meshTransporter.constructor?.name : undefined)
|
|
53
51
|
|| 'AnonymousTransporter';
|
|
54
52
|
const subscription = new Subscription();
|
|
55
|
-
if (this.registry && typeof meshTransporter.linkRegistry === 'function') {
|
|
56
|
-
meshTransporter.linkRegistry(this.registry);
|
|
57
|
-
}
|
|
58
53
|
if (this.#isRpcTransporter(meshTransporter)) {
|
|
59
54
|
subscription.add(this.#linkRpcTransporter(resolvedName, meshTransporter).subscribe());
|
|
60
55
|
}
|
|
@@ -66,15 +61,63 @@ export class SpiderMesh {
|
|
|
66
61
|
}
|
|
67
62
|
return subscription;
|
|
68
63
|
}
|
|
64
|
+
#serviceDirectories() {
|
|
65
|
+
const seen = new Set();
|
|
66
|
+
const directories = [];
|
|
67
|
+
for (const map of [this.#transporters.discoveries, this.#transporters.rpcs, this.#transporters.pubsubs]) {
|
|
68
|
+
for (const transporter of map.values()) {
|
|
69
|
+
if (seen.has(transporter))
|
|
70
|
+
continue;
|
|
71
|
+
seen.add(transporter);
|
|
72
|
+
const candidate = transporter;
|
|
73
|
+
if (typeof candidate.watchService === 'function' && typeof candidate.listNodes === 'function') {
|
|
74
|
+
directories.push(transporter);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return directories;
|
|
79
|
+
}
|
|
69
80
|
listRpcNodes(service) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
81
|
+
const seen = new Set();
|
|
82
|
+
const nodes = [];
|
|
83
|
+
for (const directory of this.#serviceDirectories()) {
|
|
84
|
+
for (const node of directory.listNodes(service)) {
|
|
85
|
+
if (seen.has(node.node_id))
|
|
86
|
+
continue;
|
|
87
|
+
seen.add(node.node_id);
|
|
88
|
+
nodes.push(node);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return nodes;
|
|
73
92
|
}
|
|
74
93
|
watchService(service) {
|
|
75
|
-
|
|
94
|
+
const directories = this.#serviceDirectories();
|
|
95
|
+
if (!directories.length)
|
|
76
96
|
return EMPTY;
|
|
77
|
-
return
|
|
97
|
+
return combineLatest(directories.map(directory => directory.watchService(service))).pipe(map(lists => {
|
|
98
|
+
const seen = new Set();
|
|
99
|
+
const merged = [];
|
|
100
|
+
for (const node of lists.flat()) {
|
|
101
|
+
if (seen.has(node.node_id))
|
|
102
|
+
continue;
|
|
103
|
+
seen.add(node.node_id);
|
|
104
|
+
merged.push(node);
|
|
105
|
+
}
|
|
106
|
+
return merged;
|
|
107
|
+
}), distinctUntilChanged((prev, curr) => {
|
|
108
|
+
if (prev.length !== curr.length)
|
|
109
|
+
return false;
|
|
110
|
+
const prevIds = new Set(prev.map(n => n.node_id));
|
|
111
|
+
return curr.every(n => prevIds.has(n.node_id));
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
#rpcTransporterNameForService(service) {
|
|
115
|
+
for (const node of this.listRpcNodes(service)) {
|
|
116
|
+
const name = node.transporters?.rpc;
|
|
117
|
+
if (typeof name === 'string')
|
|
118
|
+
return name;
|
|
119
|
+
}
|
|
120
|
+
return undefined;
|
|
78
121
|
}
|
|
79
122
|
#selectRpcTransport(filters = {}) {
|
|
80
123
|
if (!filters.service)
|
|
@@ -85,14 +128,13 @@ export class SpiderMesh {
|
|
|
85
128
|
return;
|
|
86
129
|
return this.#transporters.rpcs.get(name);
|
|
87
130
|
}
|
|
88
|
-
|
|
89
|
-
|
|
131
|
+
const name = this.#rpcTransporterNameForService(filters.service);
|
|
132
|
+
if (name) {
|
|
133
|
+
const transporter = this.#transporters.rpcs.get(name);
|
|
134
|
+
if (transporter)
|
|
135
|
+
return transporter;
|
|
90
136
|
}
|
|
91
|
-
|
|
92
|
-
if (!name)
|
|
93
|
-
return;
|
|
94
|
-
const transporter = this.#transporters.rpcs.get(name);
|
|
95
|
-
return transporter;
|
|
137
|
+
return this.#transporters.rpcs.values().next().value;
|
|
96
138
|
}
|
|
97
139
|
#normalizeRpcError(error) {
|
|
98
140
|
if (error && typeof error === 'object') {
|
|
@@ -111,7 +153,7 @@ export class SpiderMesh {
|
|
|
111
153
|
}
|
|
112
154
|
#index = 1;
|
|
113
155
|
callRemoteService(options) {
|
|
114
|
-
return of(1).pipe(switchMap(() =>
|
|
156
|
+
return of(1).pipe(switchMap(() => firstValueFrom(this.watchService(options.service), { defaultValue: [] })), take(1), mergeMap(() => {
|
|
115
157
|
const transporter = this.#selectRpcTransport(options);
|
|
116
158
|
if (!transporter)
|
|
117
159
|
throw { code: 'MICROSERVICE_OFFLINE', message: `No transporter available for service ${options.service}` };
|
|
@@ -273,9 +315,6 @@ export class SpiderMesh {
|
|
|
273
315
|
}
|
|
274
316
|
}
|
|
275
317
|
}
|
|
276
|
-
if (offline) {
|
|
277
|
-
this.registry?.removePeer(offline);
|
|
278
|
-
}
|
|
279
318
|
if (endpoints) {
|
|
280
319
|
this.#refresh({
|
|
281
320
|
transporters: {
|
|
@@ -306,20 +345,7 @@ export class SpiderMesh {
|
|
|
306
345
|
sender_id: this.node_id,
|
|
307
346
|
}).catch(() => undefined);
|
|
308
347
|
});
|
|
309
|
-
return transporter.pipe(
|
|
310
|
-
if (!node || typeof node !== 'object' || !('node_id' in node) || !('services' in node))
|
|
311
|
-
return;
|
|
312
|
-
const rpcTransporterName = this.#resolveDiscoveredRpcTransporterName(node);
|
|
313
|
-
const peer = this.registry?.upsertPeer(rpcTransporterName ? {
|
|
314
|
-
...node,
|
|
315
|
-
transporters: {
|
|
316
|
-
...(node.transporters || {}),
|
|
317
|
-
rpc: rpcTransporterName
|
|
318
|
-
}
|
|
319
|
-
} : node);
|
|
320
|
-
if (!this.registry || !peer)
|
|
321
|
-
return;
|
|
322
|
-
}), finalize(() => {
|
|
348
|
+
return transporter.pipe(finalize(() => {
|
|
323
349
|
announce.unsubscribe();
|
|
324
350
|
}));
|
|
325
351
|
}
|
|
@@ -362,13 +388,6 @@ export class SpiderMesh {
|
|
|
362
388
|
}
|
|
363
389
|
});
|
|
364
390
|
}
|
|
365
|
-
#resolveDiscoveredRpcTransporterName(node) {
|
|
366
|
-
for (const [name] of this.#transporters.rpcs.entries()) {
|
|
367
|
-
if (node.transporters && Object.hasOwn(node.transporters, name))
|
|
368
|
-
return name;
|
|
369
|
-
}
|
|
370
|
-
return null;
|
|
371
|
-
}
|
|
372
391
|
#registerTopic(topic) {
|
|
373
392
|
if (this.#me$.value.topics.includes(topic))
|
|
374
393
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpiderMesh.js","sourceRoot":"","sources":["../../src/SpiderMesh.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SpiderMesh.js","sourceRoot":"","sources":["../../src/SpiderMesh.ts"],"names":[],"mappings":"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"}
|
package/build/src/index.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ export * from './decorators/LimitConcurrentRunning.js';
|
|
|
9
9
|
export * from './helpers/MicroserviceException.js';
|
|
10
10
|
export * from './helpers/LimitConcurrency.js';
|
|
11
11
|
export * from './RemoteService.js';
|
|
12
|
-
export type { DiscoveryEvent, DiscoveryTransporter, MdnsMessage, MeshTransporter, NodeMetadata, PubsubEvent, PubsubTransporter, RpcCancelPacket, RpcEvent, RpcOptions, RpcRequestPacket, RpcResponsePacket, RpcRoutingOptions, TransporterSelector, RpcTransporter, SpiderMeshError, SpiderMeshErrorCode, SpiderMeshNode, } from './types.js';
|
|
12
|
+
export type { DiscoveryEvent, DiscoveryTransporter, MdnsMessage, MeshTransporter, NodeMetadata, PubsubEvent, PubsubTransporter, RpcCancelPacket, RpcEvent, RpcOptions, RpcRequestPacket, RpcResponsePacket, RpcRoutingOptions, TransporterSelector, RpcTransporter, SpiderMeshError, SpiderMeshErrorCode, SpiderMeshNode, NodeRef, ServiceDirectory, } from './types.js';
|
package/build/src/types.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Observable } from "rxjs";
|
|
2
|
-
import type { Registry } from './Registry.js';
|
|
3
2
|
export type SpiderMeshErrorCode = ('MICROSERVICE_OFFLINE' | 'MICROSERVICE_NOT_FOUND' | 'MICROSERVICE_RPC_TIMEOUT');
|
|
4
3
|
export type SpiderMeshError = {
|
|
5
4
|
code: SpiderMeshErrorCode;
|
|
@@ -25,6 +24,11 @@ export type NodesMap = {
|
|
|
25
24
|
nodes: Map<string, SpiderMeshNode>;
|
|
26
25
|
last_updated_node_id: string;
|
|
27
26
|
};
|
|
27
|
+
export type NodeRef = Pick<SpiderMeshNode, 'node_id' | 'host' | 'services' | 'transporters'>;
|
|
28
|
+
export type ServiceDirectory = {
|
|
29
|
+
watchService(service: string): Observable<NodeRef[]>;
|
|
30
|
+
listNodes(service: string): NodeRef[];
|
|
31
|
+
};
|
|
28
32
|
export type NodeMetadata<T = {}> = T & {
|
|
29
33
|
host: string;
|
|
30
34
|
node_id: string;
|
|
@@ -41,7 +45,6 @@ export type DiscoveryEvent = {
|
|
|
41
45
|
discovered: SpiderMeshNode;
|
|
42
46
|
};
|
|
43
47
|
export type DiscoveryTransporter = Observable<DiscoveryEvent> & {
|
|
44
|
-
linkRegistry?(registry: Registry): void;
|
|
45
48
|
broadcast(data: MdnsMessage<NodeMetadata>): Promise<void>;
|
|
46
49
|
};
|
|
47
50
|
export type PubsubEvent = {
|
|
@@ -50,7 +53,6 @@ export type PubsubEvent = {
|
|
|
50
53
|
export type PubsubTransporter = Observable<PubsubEvent> & {
|
|
51
54
|
publish<T>(topic: string, data: T): Promise<void>;
|
|
52
55
|
listen<T>(topic: string): Observable<T>;
|
|
53
|
-
linkRegistry?(registry: Registry): void;
|
|
54
56
|
};
|
|
55
57
|
export type RpcRoutingOptions = {
|
|
56
58
|
[key: string]: string | number | boolean;
|
|
@@ -99,7 +101,6 @@ export type RpcEvent = Partial<{
|
|
|
99
101
|
endpoints: Record<string, string | boolean | number>;
|
|
100
102
|
}>;
|
|
101
103
|
export type RpcTransporter = Observable<RpcEvent> & {
|
|
102
|
-
linkRegistry?(registry: Registry): void;
|
|
103
104
|
send(data: RpcRequestPacket | RpcResponsePacket): Promise<{
|
|
104
105
|
cancel: () => void;
|
|
105
106
|
}>;
|
|
@@ -24,6 +24,14 @@ class ProcessRpcTransporter extends Subject {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
class ProcessDiscoveryTransporter extends Subject {
|
|
27
|
+
#registry = new Registry();
|
|
28
|
+
constructor() {
|
|
29
|
+
super();
|
|
30
|
+
this.subscribe(event => {
|
|
31
|
+
if (event.discovered)
|
|
32
|
+
this.#registry.upsertPeer(event.discovered);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
27
35
|
async broadcast(data) {
|
|
28
36
|
sendHostMessage({
|
|
29
37
|
kind: 'discovery-broadcast',
|
|
@@ -31,9 +39,14 @@ class ProcessDiscoveryTransporter extends Subject {
|
|
|
31
39
|
node: data.node,
|
|
32
40
|
});
|
|
33
41
|
}
|
|
42
|
+
watchService(service) {
|
|
43
|
+
return this.#registry.watch(service);
|
|
44
|
+
}
|
|
45
|
+
listNodes(service) {
|
|
46
|
+
return this.#registry.listPeers(service);
|
|
47
|
+
}
|
|
34
48
|
}
|
|
35
|
-
const
|
|
36
|
-
const mesh = new SpiderMesh(registry);
|
|
49
|
+
const mesh = new SpiderMesh();
|
|
37
50
|
const rpcTransporter = new ProcessRpcTransporter();
|
|
38
51
|
const discoveryTransporter = new ProcessDiscoveryTransporter();
|
|
39
52
|
mesh.registerTransporter(rpcTransporter, 'ProcessRpcTransporter');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-mesh.js","sourceRoot":"","sources":["../../../tests/fixtures/process-mesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"process-mesh.js","sourceRoot":"","sources":["../../../tests/fixtures/process-mesh.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,19 @@ class MockDiscoveryTransporter extends Subject {
|
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
+
class MockDirectoryTransporter extends Subject {
|
|
64
|
+
#registry = new Registry();
|
|
65
|
+
async broadcast(_data) { }
|
|
66
|
+
watchService(service) {
|
|
67
|
+
return this.#registry.watch(service);
|
|
68
|
+
}
|
|
69
|
+
listNodes(service) {
|
|
70
|
+
return this.#registry.listPeers(service);
|
|
71
|
+
}
|
|
72
|
+
upsertPeer(node) {
|
|
73
|
+
return this.#registry.upsertPeer(node);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
63
76
|
describe('mock e2e', () => {
|
|
64
77
|
test('routes rpc through explicit transporter name and class', async () => {
|
|
65
78
|
const mesh = new SpiderMesh();
|
|
@@ -103,8 +116,9 @@ describe('mock e2e', () => {
|
|
|
103
116
|
expect(streamValues).toEqual([1, 2, 3]);
|
|
104
117
|
});
|
|
105
118
|
test('wait supports async checker functions', async () => {
|
|
106
|
-
const
|
|
107
|
-
const
|
|
119
|
+
const mesh = new SpiderMesh();
|
|
120
|
+
const directory = new MockDirectoryTransporter();
|
|
121
|
+
mesh.registerTransporter(directory, 'MockDirectoryTransporter');
|
|
108
122
|
const serviceName = nextName('AsyncWaitService');
|
|
109
123
|
const remote = RemoteServiceLinker.link(mesh, { service: serviceName });
|
|
110
124
|
const waitPromise = remote.wait(async (nodes) => {
|
|
@@ -112,7 +126,7 @@ describe('mock e2e', () => {
|
|
|
112
126
|
return nodes.length > 0;
|
|
113
127
|
});
|
|
114
128
|
await Promise.resolve();
|
|
115
|
-
|
|
129
|
+
directory.upsertPeer({
|
|
116
130
|
host: '127.0.0.1',
|
|
117
131
|
namespace: mesh.namespace,
|
|
118
132
|
node_id: nextName('peer'),
|
|
@@ -170,5 +184,34 @@ describe('mock e2e', () => {
|
|
|
170
184
|
expect(provider.inject).toEqual([SpiderMesh]);
|
|
171
185
|
expect(result).toEqual({ orderId: 'order-1' });
|
|
172
186
|
});
|
|
187
|
+
test('listRpcNodes and __batch__ are honestly empty without a ServiceDirectory', async () => {
|
|
188
|
+
const mesh = new SpiderMesh();
|
|
189
|
+
const loopback = new NamedLoopbackRpcTransporter(mesh.node_id);
|
|
190
|
+
mesh.registerTransporter(loopback);
|
|
191
|
+
expect(mesh.listRpcNodes('AnyService')).toEqual([]);
|
|
192
|
+
const remote = RemoteServiceLinker.link(mesh, { service: 'AnyService' });
|
|
193
|
+
const batched = await firstValueFrom(remote.__batch__ping().pipe(toArray()));
|
|
194
|
+
expect(batched).toEqual([]);
|
|
195
|
+
});
|
|
196
|
+
test('pickRpcNode skips peers rejected by the filter (RPC-not-ready)', () => {
|
|
197
|
+
const registry = new Registry();
|
|
198
|
+
const service = nextName('FilterService');
|
|
199
|
+
const base = {
|
|
200
|
+
namespace: 'test',
|
|
201
|
+
host: '127.0.0.1',
|
|
202
|
+
topics: [],
|
|
203
|
+
nodes: {},
|
|
204
|
+
version: 1,
|
|
205
|
+
services: { [service]: {} },
|
|
206
|
+
};
|
|
207
|
+
registry.upsertPeer({ ...base, node_id: 'ready', transporters: { Http2Rpc: { port: 5000 } } });
|
|
208
|
+
registry.upsertPeer({ ...base, node_id: 'half', transporters: { Http2Rpc: true } });
|
|
209
|
+
const isReady = (node) => Number(node.transporters?.Http2Rpc?.port) > 0;
|
|
210
|
+
const picks = new Set();
|
|
211
|
+
for (let i = 0; i < 25; i++) {
|
|
212
|
+
picks.add(registry.pickRpcNode(service, { filter: isReady }));
|
|
213
|
+
}
|
|
214
|
+
expect([...picks]).toEqual(['ready']);
|
|
215
|
+
});
|
|
173
216
|
});
|
|
174
217
|
//# sourceMappingURL=mock-e2e.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-e2e.test.js","sourceRoot":"","sources":["../../tests/mock-e2e.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAc,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"mock-e2e.test.js","sourceRoot":"","sources":["../../tests/mock-e2e.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spider-mesh/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.146",
|
|
5
5
|
"description": "Lightweight microservice framework for typescript, auto discovery, load-balancing, fault-torrent, multiple transporters",
|
|
6
6
|
"main": "./build/src/index.js",
|
|
7
7
|
"types": "./build/src/index.d.ts",
|