Integrations
16 posts tagged “Integrations”.
September 2026
-
Make your Service Bus message handlers idempotent
Azure Service Bus delivers every message at least once, and duplicates can arrive at the same moment. Here's how to make handling the same message twice harmless, even when two copies race.
August 2026
-
Changing a message without breaking its consumers
Once other services consume your messages, the message format is a public contract. Additive changes are easy; breaking ones need a plan. Here's how to evolve message contracts safely.
July 2026
-
Every outbound call needs a timeout
The default HttpClient timeout is 100 seconds, far longer than anyone waiting on you. Set timeouts deliberately, layer them so they make sense together, and pass cancellation through.
June 2026
-
Keep other systems' models out of yours
When a third-party API's field names and status codes spread through your code, every change on their side becomes a change on yours. An anti-corruption layer stops it at the boundary.
-
Domain events and integration events aren't the same thing
Both describe something that happened, but one stays inside your service and the other is a public contract. Mixing them up couples services you meant to keep apart.
May 2026
-
Route messages with Service Bus topic filters
With a topic, every subscription gets every message by default. Filters let each consumer receive only what it needs, without the publisher knowing who's listening.
-
Add idempotency keys to your POST endpoints
When a client times out and retries a POST, did the first one work? An idempotency key lets your API recognize the retry and return the original result instead of doing the work twice.
April 2026
-
Fan-out and fan-in with Durable Functions
Processing 5,000 records one after another takes too long, and running them all at once in one function times out. Durable Functions runs them in parallel and collects the results.
-
Paging through data without skipping records
Offset paging quietly skips or repeats records when data changes mid-sync. Cursor and keyset paging don't, whether you're calling an API or building one.
March 2026
-
Follow one request across every service
When a request passes through an API, a queue and two background workers, you need one ID that ties all the logs together. .NET already creates it for you.
February 2026
-
Circuit breakers stop you hammering a failing service
Retries help with brief failures. When a dependency is down for minutes, retries just pile on. A circuit breaker notices and fails fast until it recovers.
January 2026
-
Receiving webhooks safely
A webhook endpoint is a public URL that anyone can call. Verify the signature, reject replays, respond quickly and expect duplicates.
December 2025
-
Don't ignore your dead-letter queue
Every Service Bus queue and subscription has a dead-letter queue. Messages that land there are silently waiting for someone to notice. Here's how to watch it, inspect it and replay it.
November 2025
-
Handling 429 Too Many Requests
When an API says you're sending too much, it usually tells you how long to wait. Respect that, slow yourself down, and your integration stops getting throttled.
-
The transactional outbox pattern
Saving to the database and publishing a message are two separate operations, and one of them will eventually fail. The outbox pattern makes them succeed or fail together.
October 2025
-
Retries with exponential backoff and jitter
Retrying a failed call is easy. Retrying it without making the outage worse takes backoff, jitter and some care about which requests are safe to repeat.