You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Security First**: Always use encrypted credentials and secure storage
334
359
-**Rate Limiting**: Respect the upstream API's limits — and enforce that at the
335
360
connector provider or upstream gateway, since the connector shape declares no
336
-
outbound throttle (#4911). `retryConfig` handles the `429` you get for exceeding a
337
-
limit; it does not keep you under one
361
+
outbound throttle (#4911). This bullet used to add that `retryConfig` handles
362
+
the `429` you get for exceeding a limit. It does not: `retryConfig` is
363
+
declared but currently unimplemented — every sub-key is `dead` in
364
+
`packages/spec/liveness/connector.json` — so nothing retries that `429`
365
+
either. Both the throttling and the retrying are the provider's to implement
338
366
-**Error Handling**: Implement comprehensive retry logic with exponential backoff
339
367
-**Monitoring**: Set up health checks and alerting for connector failures
340
368
-**Testing**: Test authentication, sync, and webhook flows thoroughly
@@ -357,7 +385,7 @@ mostly answers "which surface", and — for the two questions that used to route
357
385
| Do you need multi-source aggregation? |**Same answer**, and for the same reason — see [Retired: L2 ETL Pipeline](#retired-l2-etl-pipeline-v17)|
358
386
| Do you need real-time webhooks? |**Yes** → L3 (Connector) |
359
387
| Do you need advanced authentication (OAuth2, SAML)? |**Yes** → L3 (Connector) |
360
-
| Do you need retry policies and circuit breaking? |**Yes**→ L3 (Connector) — `retryConfig`, `health.circuitBreaker`. Outbound **rate limiting** is not a reason to pick any level: no level provides it (#4911); throttle at the provider or gateway |
388
+
| Do you need retry policies and circuit breaking? |**Not a reason to pick a level.** L3 *declares*`retryConfig` and `health.circuitBreaker`, but both are **declared but currently unimplemented** — every sub-key of each is `dead` in `packages/spec/liveness/connector.json`, nothing outside `packages/spec` reads either, and ADR-0049 owes them a decision — so neither is a capability you can select for. Implement retry and circuit breaking in the connector provider. Outbound **rate limiting** is not a reason to pick any level: no level provides it (#4911); throttle at the provider or gateway |
361
389
| Is it a simple point-to-point sync with an external system? |**Yes** → L3 (Connector) with `syncConfig`|
362
390
| Are you building a data warehouse pipeline? | The extraction half is L3 (`syncConfig`); the warehouse-side transformation is the warehouse's own tooling. There is no ObjectStack pipeline protocol (#6414) |
363
391
| Are you integrating with an enterprise system? |**Yes** → L3 (Connector) |
0 commit comments