The real problem with integrations
Most integrations fail for boring reasons: missing idempotency, unclear ownership, no retry strategy, poor logging, and undocumented edge cases. A “working” integration isn’t enough—it must be diagnosable and resilient.
Common builds
Versioned endpoints, auth, rate limits, documentation, and consistent error semantics.
Safe processing, retries, deduplication, and backpressure so spikes don’t break you.
Queues and workers for long-running tasks with monitoring and alerting.
Payments, invoicing, email, CRM, accounting, and internal systems—with audit trails.
Reliability checklist
- Idempotency (safe retries without duplicate side-effects)
- Clear retry & backoff strategy (and when to stop)
- Structured logs and correlation IDs
- Alerting on error rates and stalled queues
- Replay tooling for failed events
- Documentation for payloads, versions, and breaking changes
FAQ
Yes. I usually start by adding observability and safe retry patterns, then modernize incrementally.
Not by default. Clear boundaries matter; you can get them in a modular monolith too. The goal is reliability and speed—not architecture for its own sake.
Versioning, deprecation windows, and contract tests. You should be able to evolve APIs without surprise downtime.