@fjell/registry 4.4.9 → 4.4.11

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/docs/timing.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Performance Timing Report
2
2
 
3
- Generated: 2025-07-21T04:04:11.800Z
4
- Version: 4.4.7
3
+ Generated: 2025-07-21T06:44:48.558Z
4
+ Version: 4.4.10
5
5
  Node.js: v22.0.0
6
6
  Platform: darwin arm64
7
7
 
@@ -15,43 +15,43 @@ Timing results are reported in microseconds (µs) for precision.
15
15
 
16
16
  | Operation | Description | Avg Time (µs) | Min Time (µs) | Max Time (µs) | Threshold (µs) | Status |
17
17
  |-----------|-------------|---------------|---------------|---------------|----------------|--------|
18
- | createRegistry | Time to create a new registry | 0.2 | 0.0 | 558.5 | 5000 | ✅ PASS |
19
- | createRegistryHub | Time to create a new registry hub | 0.1 | 0.0 | 321.1 | 5000 | ✅ PASS |
20
- | createInstance | Time to create a new instance | 1.0 | 0.2 | 3170.4 | 10000 | ✅ PASS |
21
- | registerInstance | Time to register an instance in registry | 6.9 | 0.8 | 40163.7 | 5000 | ✅ PASS |
22
- | lookupInstance | Time to lookup an existing instance from registry | 0.5 | 0.1 | 2411.6 | 2000 | ✅ PASS |
23
- | completeWorkflow | Time for complete workflow: create hub, registry, instance, register, and lookup | 6.4 | 2.1 | 8119.5 | 25000 | ✅ PASS |
18
+ | createRegistry | Time to create a new registry | 3.5 | 0.1 | 25880.4 | 5000 | ✅ PASS |
19
+ | createRegistryHub | Time to create a new registry hub | 0.3 | 0.0 | 1400.5 | 5000 | ✅ PASS |
20
+ | createInstance | Time to create a new instance | 3.7 | 0.2 | 14723.6 | 10000 | ✅ PASS |
21
+ | registerInstance | Time to register an instance in registry | 6.5 | 0.8 | 15321.9 | 5000 | ✅ PASS |
22
+ | lookupInstance | Time to lookup an existing instance from registry | 0.8 | 0.2 | 6769.4 | 2000 | ✅ PASS |
23
+ | completeWorkflow | Time for complete workflow: create hub, registry, instance, register, and lookup | 9.4 | 2.3 | 10988.1 | 25000 | ✅ PASS |
24
24
 
25
25
  ## Scaling Performance Tests
26
26
 
27
27
  | Operation | Tree Size | Avg Time (µs) | Min Time (µs) | Max Time (µs) | Threshold (µs) | Status |
28
28
  |-----------|-----------|---------------|---------------|---------------|----------------|--------|
29
- | registerInstance_10 | 10 | 2.5 | 0.9 | 8034.8 | 5000 | ✅ PASS |
30
- | lookupInstance_10 | 10 | 0.2 | 0.0 | 87.8 | 2000 | ✅ PASS |
31
- | registerInstance_20 | 20 | 2.1 | 0.8 | 6723.3 | 5000 | ✅ PASS |
32
- | lookupInstance_20 | 20 | 0.1 | 0.0 | 31.5 | 2000 | ✅ PASS |
33
- | registerInstance_50 | 50 | 2.4 | 0.8 | 3273.2 | 5000 | ✅ PASS |
34
- | lookupInstance_50 | 50 | 0.1 | 0.0 | 446.4 | 2000 | ✅ PASS |
35
- | registerInstance_100 | 100 | 2.0 | 0.8 | 3239.7 | 5000 | ✅ PASS |
36
- | lookupInstance_100 | 100 | 0.1 | 0.0 | 36.8 | 2000 | ✅ PASS |
37
- | registerInstance_200 | 200 | 1.9 | 0.8 | 3083.9 | 10000 | ✅ PASS |
38
- | lookupInstance_200 | 200 | 0.1 | 0.0 | 12.0 | 5000 | ✅ PASS |
39
- | registerInstance_500 | 500 | 1.8 | 0.8 | 1154.4 | 10000 | ✅ PASS |
40
- | lookupInstance_500 | 500 | 0.5 | 0.0 | 6698.5 | 5000 | ✅ PASS |
41
- | registerInstance_1000 | 1000 | 3.3 | 0.8 | 7510.2 | 10000 | ✅ PASS |
42
- | lookupInstance_1000 | 1000 | 0.2 | 0.0 | 138.5 | 5000 | ✅ PASS |
43
- | registerInstance_2000 | 2000 | 3.1 | 1.1 | 370.3 | 20000 | ✅ PASS |
44
- | lookupInstance_2000 | 2000 | 0.2 | 0.1 | 8.5 | 10000 | ✅ PASS |
45
- | registerInstance_5000 | 5000 | 2.1 | 1.1 | 379.8 | 20000 | ✅ PASS |
46
- | lookupInstance_5000 | 5000 | 0.2 | 0.1 | 4.3 | 10000 | ✅ PASS |
47
- | registerInstance_10000 | 10000 | 2.3 | 0.9 | 1541.2 | 20000 | ✅ PASS |
48
- | lookupInstance_10000 | 10000 | 0.4 | 0.1 | 35.2 | 10000 | ✅ PASS |
49
- | registerInstance_20000 | 20000 | 1.2 | 0.9 | 22.7 | 50000 | ✅ PASS |
50
- | lookupInstance_20000 | 20000 | 0.3 | 0.0 | 29.1 | 25000 | ✅ PASS |
51
- | registerInstance_50000 | 50000 | 1.4 | 0.9 | 37.1 | 50000 | ✅ PASS |
52
- | lookupInstance_50000 | 50000 | 0.2 | 0.1 | 2.3 | 25000 | ✅ PASS |
53
- | registerInstance_100000 | 100000 | 1.5 | 1.0 | 44.6 | 50000 | ✅ PASS |
54
- | lookupInstance_100000 | 100000 | 0.3 | 0.1 | 2.4 | 25000 | ✅ PASS |
29
+ | registerInstance_10 | 10 | 3.0 | 0.8 | 4805.3 | 5000 | ✅ PASS |
30
+ | lookupInstance_10 | 10 | 0.8 | 0.1 | 4309.9 | 2000 | ✅ PASS |
31
+ | registerInstance_20 | 20 | 2.3 | 0.8 | 3640.8 | 5000 | ✅ PASS |
32
+ | lookupInstance_20 | 20 | 1.0 | 0.2 | 10107.1 | 2000 | ✅ PASS |
33
+ | registerInstance_50 | 50 | 2.8 | 0.7 | 5268.4 | 5000 | ✅ PASS |
34
+ | lookupInstance_50 | 50 | 0.6 | 0.1 | 6467.8 | 2000 | ✅ PASS |
35
+ | registerInstance_100 | 100 | 2.9 | 0.8 | 8246.9 | 5000 | ✅ PASS |
36
+ | lookupInstance_100 | 100 | 0.6 | 0.1 | 6114.0 | 2000 | ✅ PASS |
37
+ | registerInstance_200 | 200 | 3.7 | 0.8 | 8407.2 | 10000 | ✅ PASS |
38
+ | lookupInstance_200 | 200 | 0.6 | 0.1 | 1741.1 | 5000 | ✅ PASS |
39
+ | registerInstance_500 | 500 | 1.4 | 0.7 | 1085.1 | 10000 | ✅ PASS |
40
+ | lookupInstance_500 | 500 | 0.3 | 0.1 | 76.8 | 5000 | ✅ PASS |
41
+ | registerInstance_1000 | 1000 | 1.3 | 0.8 | 264.5 | 10000 | ✅ PASS |
42
+ | lookupInstance_1000 | 1000 | 0.4 | 0.2 | 2325.5 | 5000 | ✅ PASS |
43
+ | registerInstance_2000 | 2000 | 1.2 | 0.8 | 65.4 | 20000 | ✅ PASS |
44
+ | lookupInstance_2000 | 2000 | 0.3 | 0.2 | 8.3 | 10000 | ✅ PASS |
45
+ | registerInstance_5000 | 5000 | 3.0 | 0.7 | 2989.8 | 20000 | ✅ PASS |
46
+ | lookupInstance_5000 | 5000 | 0.7 | 0.2 | 285.8 | 10000 | ✅ PASS |
47
+ | registerInstance_10000 | 10000 | 7.9 | 1.1 | 7913.2 | 20000 | ✅ PASS |
48
+ | lookupInstance_10000 | 10000 | 0.6 | 0.3 | 167.5 | 10000 | ✅ PASS |
49
+ | registerInstance_20000 | 20000 | 1.4 | 1.0 | 31.3 | 50000 | ✅ PASS |
50
+ | lookupInstance_20000 | 20000 | 0.5 | 0.2 | 15.0 | 25000 | ✅ PASS |
51
+ | registerInstance_50000 | 50000 | 1.3 | 0.9 | 30.3 | 50000 | ✅ PASS |
52
+ | lookupInstance_50000 | 50000 | 0.4 | 0.2 | 26.7 | 25000 | ✅ PASS |
53
+ | registerInstance_100000 | 100000 | 1.2 | 0.9 | 27.3 | 50000 | ✅ PASS |
54
+ | lookupInstance_100000 | 100000 | 0.4 | 0.2 | 14.0 | 25000 | ✅ PASS |
55
55
 
56
56
  ## Scaling Performance Visualization
57
57
 
@@ -71,9 +71,9 @@ consistent performance, while wider bands show more variability.*
71
71
 
72
72
  **Description:** Time to create a new registry
73
73
  **Iterations:** 20000
74
- **Average Time:** 0.2 µs
75
- **Min Time:** 0.0 µs
76
- **Max Time:** 558.5 µs
74
+ **Average Time:** 3.5 µs
75
+ **Min Time:** 0.1 µs
76
+ **Max Time:** 25880.4 µs
77
77
  **Threshold:** 5000 µs
78
78
  **Status:** ✅ PASS
79
79
 
@@ -81,9 +81,9 @@ consistent performance, while wider bands show more variability.*
81
81
 
82
82
  **Description:** Time to create a new registry hub
83
83
  **Iterations:** 20000
84
- **Average Time:** 0.1 µs
84
+ **Average Time:** 0.3 µs
85
85
  **Min Time:** 0.0 µs
86
- **Max Time:** 321.1 µs
86
+ **Max Time:** 1400.5 µs
87
87
  **Threshold:** 5000 µs
88
88
  **Status:** ✅ PASS
89
89
 
@@ -91,9 +91,9 @@ consistent performance, while wider bands show more variability.*
91
91
 
92
92
  **Description:** Time to create a new instance
93
93
  **Iterations:** 20000
94
- **Average Time:** 1.0 µs
94
+ **Average Time:** 3.7 µs
95
95
  **Min Time:** 0.2 µs
96
- **Max Time:** 3170.4 µs
96
+ **Max Time:** 14723.6 µs
97
97
  **Threshold:** 10000 µs
98
98
  **Status:** ✅ PASS
99
99
 
@@ -101,9 +101,9 @@ consistent performance, while wider bands show more variability.*
101
101
 
102
102
  **Description:** Time to register an instance in registry
103
103
  **Iterations:** 20000
104
- **Average Time:** 6.9 µs
104
+ **Average Time:** 6.5 µs
105
105
  **Min Time:** 0.8 µs
106
- **Max Time:** 40163.7 µs
106
+ **Max Time:** 15321.9 µs
107
107
  **Threshold:** 5000 µs
108
108
  **Status:** ✅ PASS
109
109
 
@@ -111,9 +111,9 @@ consistent performance, while wider bands show more variability.*
111
111
 
112
112
  **Description:** Time to lookup an existing instance from registry
113
113
  **Iterations:** 20000
114
- **Average Time:** 0.5 µs
115
- **Min Time:** 0.1 µs
116
- **Max Time:** 2411.6 µs
114
+ **Average Time:** 0.8 µs
115
+ **Min Time:** 0.2 µs
116
+ **Max Time:** 6769.4 µs
117
117
  **Threshold:** 2000 µs
118
118
  **Status:** ✅ PASS
119
119
 
@@ -121,9 +121,9 @@ consistent performance, while wider bands show more variability.*
121
121
 
122
122
  **Description:** Time for complete workflow: create hub, registry, instance, register, and lookup
123
123
  **Iterations:** 10000
124
- **Average Time:** 6.4 µs
125
- **Min Time:** 2.1 µs
126
- **Max Time:** 8119.5 µs
124
+ **Average Time:** 9.4 µs
125
+ **Min Time:** 2.3 µs
126
+ **Max Time:** 10988.1 µs
127
127
  **Threshold:** 25000 µs
128
128
  **Status:** ✅ PASS
129
129
 
@@ -134,9 +134,9 @@ consistent performance, while wider bands show more variability.*
134
134
  **Description:** Time to register instance with 10 existing items in tree
135
135
  **Tree Size:** 10 items
136
136
  **Iterations:** 10000
137
- **Average Time:** 2.5 µs
138
- **Min Time:** 0.9 µs
139
- **Max Time:** 8034.8 µs
137
+ **Average Time:** 3.0 µs
138
+ **Min Time:** 0.8 µs
139
+ **Max Time:** 4805.3 µs
140
140
  **Threshold:** 5000 µs
141
141
  **Status:** ✅ PASS
142
142
 
@@ -145,9 +145,9 @@ consistent performance, while wider bands show more variability.*
145
145
  **Description:** Time to lookup instance with 10 items in tree
146
146
  **Tree Size:** 10 items
147
147
  **Iterations:** 20000
148
- **Average Time:** 0.2 µs
149
- **Min Time:** 0.0 µs
150
- **Max Time:** 87.8 µs
148
+ **Average Time:** 0.8 µs
149
+ **Min Time:** 0.1 µs
150
+ **Max Time:** 4309.9 µs
151
151
  **Threshold:** 2000 µs
152
152
  **Status:** ✅ PASS
153
153
 
@@ -156,9 +156,9 @@ consistent performance, while wider bands show more variability.*
156
156
  **Description:** Time to register instance with 20 existing items in tree
157
157
  **Tree Size:** 20 items
158
158
  **Iterations:** 10000
159
- **Average Time:** 2.1 µs
159
+ **Average Time:** 2.3 µs
160
160
  **Min Time:** 0.8 µs
161
- **Max Time:** 6723.3 µs
161
+ **Max Time:** 3640.8 µs
162
162
  **Threshold:** 5000 µs
163
163
  **Status:** ✅ PASS
164
164
 
@@ -167,9 +167,9 @@ consistent performance, while wider bands show more variability.*
167
167
  **Description:** Time to lookup instance with 20 items in tree
168
168
  **Tree Size:** 20 items
169
169
  **Iterations:** 20000
170
- **Average Time:** 0.1 µs
171
- **Min Time:** 0.0 µs
172
- **Max Time:** 31.5 µs
170
+ **Average Time:** 1.0 µs
171
+ **Min Time:** 0.2 µs
172
+ **Max Time:** 10107.1 µs
173
173
  **Threshold:** 2000 µs
174
174
  **Status:** ✅ PASS
175
175
 
@@ -178,9 +178,9 @@ consistent performance, while wider bands show more variability.*
178
178
  **Description:** Time to register instance with 50 existing items in tree
179
179
  **Tree Size:** 50 items
180
180
  **Iterations:** 10000
181
- **Average Time:** 2.4 µs
182
- **Min Time:** 0.8 µs
183
- **Max Time:** 3273.2 µs
181
+ **Average Time:** 2.8 µs
182
+ **Min Time:** 0.7 µs
183
+ **Max Time:** 5268.4 µs
184
184
  **Threshold:** 5000 µs
185
185
  **Status:** ✅ PASS
186
186
 
@@ -189,9 +189,9 @@ consistent performance, while wider bands show more variability.*
189
189
  **Description:** Time to lookup instance with 50 items in tree
190
190
  **Tree Size:** 50 items
191
191
  **Iterations:** 20000
192
- **Average Time:** 0.1 µs
193
- **Min Time:** 0.0 µs
194
- **Max Time:** 446.4 µs
192
+ **Average Time:** 0.6 µs
193
+ **Min Time:** 0.1 µs
194
+ **Max Time:** 6467.8 µs
195
195
  **Threshold:** 2000 µs
196
196
  **Status:** ✅ PASS
197
197
 
@@ -200,9 +200,9 @@ consistent performance, while wider bands show more variability.*
200
200
  **Description:** Time to register instance with 100 existing items in tree
201
201
  **Tree Size:** 100 items
202
202
  **Iterations:** 10000
203
- **Average Time:** 2.0 µs
203
+ **Average Time:** 2.9 µs
204
204
  **Min Time:** 0.8 µs
205
- **Max Time:** 3239.7 µs
205
+ **Max Time:** 8246.9 µs
206
206
  **Threshold:** 5000 µs
207
207
  **Status:** ✅ PASS
208
208
 
@@ -211,9 +211,9 @@ consistent performance, while wider bands show more variability.*
211
211
  **Description:** Time to lookup instance with 100 items in tree
212
212
  **Tree Size:** 100 items
213
213
  **Iterations:** 20000
214
- **Average Time:** 0.1 µs
215
- **Min Time:** 0.0 µs
216
- **Max Time:** 36.8 µs
214
+ **Average Time:** 0.6 µs
215
+ **Min Time:** 0.1 µs
216
+ **Max Time:** 6114.0 µs
217
217
  **Threshold:** 2000 µs
218
218
  **Status:** ✅ PASS
219
219
 
@@ -222,9 +222,9 @@ consistent performance, while wider bands show more variability.*
222
222
  **Description:** Time to register instance with 200 existing items in tree
223
223
  **Tree Size:** 200 items
224
224
  **Iterations:** 10000
225
- **Average Time:** 1.9 µs
225
+ **Average Time:** 3.7 µs
226
226
  **Min Time:** 0.8 µs
227
- **Max Time:** 3083.9 µs
227
+ **Max Time:** 8407.2 µs
228
228
  **Threshold:** 10000 µs
229
229
  **Status:** ✅ PASS
230
230
 
@@ -233,9 +233,9 @@ consistent performance, while wider bands show more variability.*
233
233
  **Description:** Time to lookup instance with 200 items in tree
234
234
  **Tree Size:** 200 items
235
235
  **Iterations:** 20000
236
- **Average Time:** 0.1 µs
237
- **Min Time:** 0.0 µs
238
- **Max Time:** 12.0 µs
236
+ **Average Time:** 0.6 µs
237
+ **Min Time:** 0.1 µs
238
+ **Max Time:** 1741.1 µs
239
239
  **Threshold:** 5000 µs
240
240
  **Status:** ✅ PASS
241
241
 
@@ -244,9 +244,9 @@ consistent performance, while wider bands show more variability.*
244
244
  **Description:** Time to register instance with 500 existing items in tree
245
245
  **Tree Size:** 500 items
246
246
  **Iterations:** 10000
247
- **Average Time:** 1.8 µs
248
- **Min Time:** 0.8 µs
249
- **Max Time:** 1154.4 µs
247
+ **Average Time:** 1.4 µs
248
+ **Min Time:** 0.7 µs
249
+ **Max Time:** 1085.1 µs
250
250
  **Threshold:** 10000 µs
251
251
  **Status:** ✅ PASS
252
252
 
@@ -255,9 +255,9 @@ consistent performance, while wider bands show more variability.*
255
255
  **Description:** Time to lookup instance with 500 items in tree
256
256
  **Tree Size:** 500 items
257
257
  **Iterations:** 20000
258
- **Average Time:** 0.5 µs
259
- **Min Time:** 0.0 µs
260
- **Max Time:** 6698.5 µs
258
+ **Average Time:** 0.3 µs
259
+ **Min Time:** 0.1 µs
260
+ **Max Time:** 76.8 µs
261
261
  **Threshold:** 5000 µs
262
262
  **Status:** ✅ PASS
263
263
 
@@ -266,9 +266,9 @@ consistent performance, while wider bands show more variability.*
266
266
  **Description:** Time to register instance with 1000 existing items in tree
267
267
  **Tree Size:** 1000 items
268
268
  **Iterations:** 10000
269
- **Average Time:** 3.3 µs
269
+ **Average Time:** 1.3 µs
270
270
  **Min Time:** 0.8 µs
271
- **Max Time:** 7510.2 µs
271
+ **Max Time:** 264.5 µs
272
272
  **Threshold:** 10000 µs
273
273
  **Status:** ✅ PASS
274
274
 
@@ -277,9 +277,9 @@ consistent performance, while wider bands show more variability.*
277
277
  **Description:** Time to lookup instance with 1000 items in tree
278
278
  **Tree Size:** 1000 items
279
279
  **Iterations:** 20000
280
- **Average Time:** 0.2 µs
281
- **Min Time:** 0.0 µs
282
- **Max Time:** 138.5 µs
280
+ **Average Time:** 0.4 µs
281
+ **Min Time:** 0.2 µs
282
+ **Max Time:** 2325.5 µs
283
283
  **Threshold:** 5000 µs
284
284
  **Status:** ✅ PASS
285
285
 
@@ -288,9 +288,9 @@ consistent performance, while wider bands show more variability.*
288
288
  **Description:** Time to register instance with 2000 existing items in tree
289
289
  **Tree Size:** 2000 items
290
290
  **Iterations:** 2500
291
- **Average Time:** 3.1 µs
292
- **Min Time:** 1.1 µs
293
- **Max Time:** 370.3 µs
291
+ **Average Time:** 1.2 µs
292
+ **Min Time:** 0.8 µs
293
+ **Max Time:** 65.4 µs
294
294
  **Threshold:** 20000 µs
295
295
  **Status:** ✅ PASS
296
296
 
@@ -299,9 +299,9 @@ consistent performance, while wider bands show more variability.*
299
299
  **Description:** Time to lookup instance with 2000 items in tree
300
300
  **Tree Size:** 2000 items
301
301
  **Iterations:** 5000
302
- **Average Time:** 0.2 µs
303
- **Min Time:** 0.1 µs
304
- **Max Time:** 8.5 µs
302
+ **Average Time:** 0.3 µs
303
+ **Min Time:** 0.2 µs
304
+ **Max Time:** 8.3 µs
305
305
  **Threshold:** 10000 µs
306
306
  **Status:** ✅ PASS
307
307
 
@@ -310,9 +310,9 @@ consistent performance, while wider bands show more variability.*
310
310
  **Description:** Time to register instance with 5000 existing items in tree
311
311
  **Tree Size:** 5000 items
312
312
  **Iterations:** 2500
313
- **Average Time:** 2.1 µs
314
- **Min Time:** 1.1 µs
315
- **Max Time:** 379.8 µs
313
+ **Average Time:** 3.0 µs
314
+ **Min Time:** 0.7 µs
315
+ **Max Time:** 2989.8 µs
316
316
  **Threshold:** 20000 µs
317
317
  **Status:** ✅ PASS
318
318
 
@@ -321,9 +321,9 @@ consistent performance, while wider bands show more variability.*
321
321
  **Description:** Time to lookup instance with 5000 items in tree
322
322
  **Tree Size:** 5000 items
323
323
  **Iterations:** 5000
324
- **Average Time:** 0.2 µs
325
- **Min Time:** 0.1 µs
326
- **Max Time:** 4.3 µs
324
+ **Average Time:** 0.7 µs
325
+ **Min Time:** 0.2 µs
326
+ **Max Time:** 285.8 µs
327
327
  **Threshold:** 10000 µs
328
328
  **Status:** ✅ PASS
329
329
 
@@ -332,9 +332,9 @@ consistent performance, while wider bands show more variability.*
332
332
  **Description:** Time to register instance with 10000 existing items in tree
333
333
  **Tree Size:** 10000 items
334
334
  **Iterations:** 2500
335
- **Average Time:** 2.3 µs
336
- **Min Time:** 0.9 µs
337
- **Max Time:** 1541.2 µs
335
+ **Average Time:** 7.9 µs
336
+ **Min Time:** 1.1 µs
337
+ **Max Time:** 7913.2 µs
338
338
  **Threshold:** 20000 µs
339
339
  **Status:** ✅ PASS
340
340
 
@@ -343,9 +343,9 @@ consistent performance, while wider bands show more variability.*
343
343
  **Description:** Time to lookup instance with 10000 items in tree
344
344
  **Tree Size:** 10000 items
345
345
  **Iterations:** 5000
346
- **Average Time:** 0.4 µs
347
- **Min Time:** 0.1 µs
348
- **Max Time:** 35.2 µs
346
+ **Average Time:** 0.6 µs
347
+ **Min Time:** 0.3 µs
348
+ **Max Time:** 167.5 µs
349
349
  **Threshold:** 10000 µs
350
350
  **Status:** ✅ PASS
351
351
 
@@ -354,9 +354,9 @@ consistent performance, while wider bands show more variability.*
354
354
  **Description:** Time to register instance with 20000 existing items in tree
355
355
  **Tree Size:** 20000 items
356
356
  **Iterations:** 500
357
- **Average Time:** 1.2 µs
358
- **Min Time:** 0.9 µs
359
- **Max Time:** 22.7 µs
357
+ **Average Time:** 1.4 µs
358
+ **Min Time:** 1.0 µs
359
+ **Max Time:** 31.3 µs
360
360
  **Threshold:** 50000 µs
361
361
  **Status:** ✅ PASS
362
362
 
@@ -365,9 +365,9 @@ consistent performance, while wider bands show more variability.*
365
365
  **Description:** Time to lookup instance with 20000 items in tree
366
366
  **Tree Size:** 20000 items
367
367
  **Iterations:** 1250
368
- **Average Time:** 0.3 µs
369
- **Min Time:** 0.0 µs
370
- **Max Time:** 29.1 µs
368
+ **Average Time:** 0.5 µs
369
+ **Min Time:** 0.2 µs
370
+ **Max Time:** 15.0 µs
371
371
  **Threshold:** 25000 µs
372
372
  **Status:** ✅ PASS
373
373
 
@@ -376,9 +376,9 @@ consistent performance, while wider bands show more variability.*
376
376
  **Description:** Time to register instance with 50000 existing items in tree
377
377
  **Tree Size:** 50000 items
378
378
  **Iterations:** 500
379
- **Average Time:** 1.4 µs
379
+ **Average Time:** 1.3 µs
380
380
  **Min Time:** 0.9 µs
381
- **Max Time:** 37.1 µs
381
+ **Max Time:** 30.3 µs
382
382
  **Threshold:** 50000 µs
383
383
  **Status:** ✅ PASS
384
384
 
@@ -387,9 +387,9 @@ consistent performance, while wider bands show more variability.*
387
387
  **Description:** Time to lookup instance with 50000 items in tree
388
388
  **Tree Size:** 50000 items
389
389
  **Iterations:** 1250
390
- **Average Time:** 0.2 µs
391
- **Min Time:** 0.1 µs
392
- **Max Time:** 2.3 µs
390
+ **Average Time:** 0.4 µs
391
+ **Min Time:** 0.2 µs
392
+ **Max Time:** 26.7 µs
393
393
  **Threshold:** 25000 µs
394
394
  **Status:** ✅ PASS
395
395
 
@@ -398,9 +398,9 @@ consistent performance, while wider bands show more variability.*
398
398
  **Description:** Time to register instance with 100000 existing items in tree
399
399
  **Tree Size:** 100000 items
400
400
  **Iterations:** 500
401
- **Average Time:** 1.5 µs
402
- **Min Time:** 1.0 µs
403
- **Max Time:** 44.6 µs
401
+ **Average Time:** 1.2 µs
402
+ **Min Time:** 0.9 µs
403
+ **Max Time:** 27.3 µs
404
404
  **Threshold:** 50000 µs
405
405
  **Status:** ✅ PASS
406
406
 
@@ -409,9 +409,9 @@ consistent performance, while wider bands show more variability.*
409
409
  **Description:** Time to lookup instance with 100000 items in tree
410
410
  **Tree Size:** 100000 items
411
411
  **Iterations:** 1250
412
- **Average Time:** 0.3 µs
413
- **Min Time:** 0.1 µs
414
- **Max Time:** 2.4 µs
412
+ **Average Time:** 0.4 µs
413
+ **Min Time:** 0.2 µs
414
+ **Max Time:** 14.0 µs
415
415
  **Threshold:** 25000 µs
416
416
  **Status:** ✅ PASS
417
417
 
@@ -33,6 +33,18 @@ Shows how each key path maps to different implementations via scopes using the r
33
33
 
34
34
  Perfect for enterprise applications that need clean separation of concerns and organized service architecture.
35
35
 
36
+ ### 4. `registry-statistics-example.ts` 📊 **Usage Analytics**
37
+ **Track and monitor registry usage patterns with scope-aware analytics!** Demonstrates advanced statistics tracking:
38
+ - **Scope-Aware Tracking**: Separate statistics for each kta + scopes combination
39
+ - **Total Call Monitoring**: Track overall `get()` method usage
40
+ - **Detailed Coordinate Records**: Individual tracking for each service/scope pair
41
+ - **Environment Analysis**: Aggregate statistics by environment (prod/dev)
42
+ - **Most/Least Used Services**: Identify usage patterns and bottlenecks
43
+ - **Immutable Statistics**: Safe access to tracking data without affecting internal state
44
+ - **Normalized Scope Handling**: Consistent tracking regardless of scope order
45
+
46
+ Perfect for monitoring, optimization, understanding service usage patterns, and analyzing environment-specific behavior in production applications.
47
+
36
48
  ## Key Concepts Demonstrated
37
49
 
38
50
  ### Simple Usage (simple-example.ts)
@@ -162,9 +174,16 @@ npx tsx examples/coordinates-example.ts
162
174
  # Run the RegistryHub cross-registry coordinate discovery example
163
175
  npx tsx examples/registry-hub-coordinates-example.ts
164
176
 
177
+ # Run the registry statistics tracking example
178
+ npx tsx examples/registry-statistics-example.ts
179
+
165
180
  # Or in Node.js
166
181
  node -r esbuild-register examples/simple-example.ts
182
+ node -r esbuild-register examples/multi-level-keys.ts
167
183
  node -r esbuild-register examples/registry-hub-types.ts
184
+ node -r esbuild-register examples/coordinates-example.ts
185
+ node -r esbuild-register examples/registry-hub-coordinates-example.ts
186
+ node -r esbuild-register examples/registry-statistics-example.ts
168
187
  ```
169
188
 
170
189
  ## Integration with Real Fjell Registry