@camunda8/orchestration-cluster-api 8.9.0-alpha.10 → 8.9.0-alpha.12
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/CHANGELOG.md +14 -2
- package/README.md +50 -3
- package/dist/{chunk-C45DDPN5.js → chunk-4LIDRKND.js} +585 -550
- package/dist/chunk-4LIDRKND.js.map +1 -0
- package/dist/fp/index.cjs +584 -549
- package/dist/fp/index.cjs.map +1 -1
- package/dist/fp/index.d.cts +1 -1
- package/dist/fp/index.d.ts +1 -1
- package/dist/fp/index.js +1 -1
- package/dist/{index-_Xrber4V.d.cts → index-BtaIAxYd.d.cts} +378 -360
- package/dist/{index-Y2YjWdGI.d.ts → index-CCQ7L-Rm.d.ts} +378 -360
- package/dist/index.cjs +584 -549
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-C45DDPN5.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
# [8.9.0-alpha.
|
|
1
|
+
# [8.9.0-alpha.12](https://github.com/camunda/orchestration-cluster-api-js/compare/v8.9.0-alpha.11...v8.9.0-alpha.12) (2026-03-08)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* build from hardened contract in 8.9 ([03ef35a](https://github.com/camunda/orchestration-cluster-api-js/commit/03ef35a9cda1913bf11bd42b07ae95829d4118cc))
|
|
2
7
|
|
|
8
|
+
# [8.9.0-alpha.11](https://github.com/camunda/orchestration-cluster-api-js/compare/v8.9.0-alpha.10...v8.9.0-alpha.11) (2026-03-06)
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
- add per-operation retry config. New tuning for backpressure ([9dd921a](https://github.com/camunda/orchestration-cluster-api-js/commit/9dd921a0eae67d56d0e8a7d6423ac7d8a3edd3b4))
|
|
13
|
+
|
|
14
|
+
# [8.9.0-alpha.10](https://github.com/camunda/orchestration-cluster-api-js/compare/v8.9.0-alpha.9...v8.9.0-alpha.10) (2026-03-05)
|
|
3
15
|
|
|
4
16
|
### Features
|
|
5
17
|
|
|
6
|
-
|
|
18
|
+
- tune backpressure ([b64c6f1](https://github.com/camunda/orchestration-cluster-api-js/commit/b64c6f14a5b4755881cb1c79c804a5cd8403145f))
|
|
7
19
|
|
|
8
20
|
# [8.9.0-alpha.9](https://github.com/camunda/orchestration-cluster-api-js/compare/v8.9.0-alpha.8...v8.9.0-alpha.9) (2026-03-05)
|
|
9
21
|
|
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ Type‑safe, promise‑based client for the Camunda 8 Orchestration Cluster REST
|
|
|
14
14
|
- Immutable, deep‑frozen configuration accessible through a factory‑created client instance
|
|
15
15
|
- Automatic body-level tenantId defaulting: if a request body supports an optional tenantId and you omit it, the SDK fills it from CAMUNDA_DEFAULT_TENANT_ID (path params are never auto-filled)
|
|
16
16
|
- Automatic transient HTTP retry (429, 503, network) with exponential backoff + full jitter (configurable via CAMUNDA_SDK_HTTP_RETRY\*). Non-retryable 500s fail fast. Pluggable strategy surface (default uses p-retry when available, internal fallback otherwise).
|
|
17
|
+
- Per-method retry override: disable or customize retry policy on any individual API call without changing global settings
|
|
17
18
|
|
|
18
19
|
## Install
|
|
19
20
|
|
|
@@ -149,15 +150,61 @@ Behavior:
|
|
|
149
150
|
- `strict` - fail on type mismatch or missing required fields
|
|
150
151
|
- `fanatical` - fail on type mismatch, missing required fields, or unknown additional fields
|
|
151
152
|
|
|
153
|
+
## Per-Method Retry Override
|
|
154
|
+
|
|
155
|
+
Every API method accepts an optional trailing `options` parameter that lets you override or disable the global retry policy for that single call.
|
|
156
|
+
|
|
157
|
+
### Disable Retry for a Single Call
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
// This call will not retry on transient errors
|
|
161
|
+
await camunda.completeJob({ jobKey }, { retry: false });
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Override Specific Retry Settings
|
|
165
|
+
|
|
166
|
+
Pass a partial `HttpRetryPolicy` to override individual fields. Unspecified fields inherit from the global configuration.
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
import type { OperationOptions } from '@camunda8/orchestration-cluster-api';
|
|
170
|
+
|
|
171
|
+
// More aggressive retry for this operation only
|
|
172
|
+
await camunda.createProcessInstance(
|
|
173
|
+
{ processDefinitionId: 'payment-process' },
|
|
174
|
+
{ retry: { maxAttempts: 8, maxDelayMs: 5000 } }
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
// Minimal retry: single retry with short backoff
|
|
178
|
+
await camunda.getTopology({ retry: { maxAttempts: 2, baseDelayMs: 50 } });
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### How It Works
|
|
182
|
+
|
|
183
|
+
| `options.retry` value | Behavior |
|
|
184
|
+
| --------------------- | -------------------------------------------------------------------- |
|
|
185
|
+
| omitted / `undefined` | Uses global policy (`CAMUNDA_SDK_HTTP_RETRY_*` env vars) |
|
|
186
|
+
| `false` | Disables retry entirely (single attempt, no backoff) |
|
|
187
|
+
| `{ maxAttempts: 5 }` | Merges with global policy — only the specified fields are overridden |
|
|
188
|
+
|
|
189
|
+
The `HttpRetryPolicy` fields available for override:
|
|
190
|
+
|
|
191
|
+
| Field | Type | Description |
|
|
192
|
+
| ------------- | -------- | --------------------------------------- |
|
|
193
|
+
| `maxAttempts` | `number` | Total attempts (initial + retries) |
|
|
194
|
+
| `baseDelayMs` | `number` | Base delay for exponential backoff (ms) |
|
|
195
|
+
| `maxDelayMs` | `number` | Maximum delay cap (ms) |
|
|
196
|
+
|
|
152
197
|
## Advanced HTTP Retry: Cockatiel Adapter (Optional)
|
|
153
198
|
|
|
154
|
-
|
|
199
|
+
For advanced resilience patterns beyond per-method overrides — circuit breakers, timeouts, custom classification, combining policies — you can integrate [cockatiel](https://github.com/connor4312/cockatiel).
|
|
200
|
+
|
|
201
|
+
> **Tip:** For most use cases, per-method retry override (above) is sufficient. Reach for Cockatiel when you need circuit breaking, hedging, or bulkhead controls.
|
|
155
202
|
|
|
156
203
|
### When To Use Cockatiel
|
|
157
204
|
|
|
158
|
-
- You need different retry policies per operation (e.g. idempotent GET vs mutating POST)
|
|
159
205
|
- You want circuit breaking, hedging, timeout, or bulkhead controls
|
|
160
206
|
- You want to add custom classification (e.g. retry certain 5xx only on safe verbs)
|
|
207
|
+
- You need to compose multiple resilience policies together
|
|
161
208
|
|
|
162
209
|
### Disable Built‑In HTTP Retries
|
|
163
210
|
|
|
@@ -292,7 +339,7 @@ const policy = retry(classify, {
|
|
|
292
339
|
- Keep SDK retries disabled to prevent duplicate layers.
|
|
293
340
|
- SDK synthesizes `Error` objects with a `status` for retry-significant HTTP responses (429, 503, 500), enabling classification.
|
|
294
341
|
- You can tag errors (e.g. assign `err.__opVerb`) in a wrapper if verb-level logic is needed.
|
|
295
|
-
-
|
|
342
|
+
- For per-operation retry customization without external dependencies, use the built-in [per-method retry override](#per-method-retry-override) instead.
|
|
296
343
|
|
|
297
344
|
> Combine cockatiel retry with a circuit breaker, timeout, or bulkhead policy for more robust behavior in partial outages.
|
|
298
345
|
|