Sign in

Irina Dominte(Scurtu)

@irina.codes
262 followers 76 following 22 posts

Software Architect @ParticularSW, Microsoft #MVP #MCT, Author @dometrain.com Speaker, Trainer @dotnet Dev 👩‍💻, @dotnetdaysro,👩‍🏫 Blogs at irina.codes

PostsRepliesMedia
Irina Dominte(Scurtu) @irina.codes · 17h
A down database cannot corrupt your outbox. The transaction just doesn't happen: no row, no event, nothing half-written. The worker resumes later. The consumer never acknowledged, so the broker redelivers. It recovers on its own, until retention starts deleting things. #distributedsystems
001
Irina Dominte(Scurtu) @irina.codes · 23/09/2026
Service A charged the card. Service B reserved stock. Service C emailed the customer. Then Service D fails. There is no undo button here. You only go forward: refund, release, apologize. Sagas make that explicit: one compensating transaction per step. #distributedsystems
021
Irina Dominte(Scurtu) @irina.codes · 16/09/2026
Safe to retry means nothing if two retries land at the same time. Check-then-process works single-threaded. Under concurrency it's a race: both check, find nothing, both process. Fix: check-and-write as one atomic operation. Unique constraint, optimistic concurrency, Redis SET NX. #concurrency
000
Irina Dominte(Scurtu) @irina.codes · 08/09/2026
Your data disagreeing with itself isn't a bug. It's the trade-off you signed up for. Strong consistency is expensive at global scale. Eventual consistency trades that for availability. You already rely on it: DNS, CDN caches, the read replica lagging behind your primary. #softwarearchitecture
010
Irina Dominte(Scurtu) @irina.codes · 04/09/2026
The outbox pattern gets you halfway to reliable messaging. It guarantees the message reaches the broker atomically with the DB write. No more "saved but not published" states. Duplicate delivery, crashed consumers, ordering: your problem. That's the inbox pattern's job. #softwarearchitecture
011
Irina Dominte(Scurtu) @irina.codes · 18/03/2026
Reliability is a design choice, not a given. Most teams only find this out after the incident. #reliability #softwareengineering #dotnet
031
Irina Dominte(Scurtu) @irina.codes · 11/03/2026
Making everything async won't save you if your consumers can't keep up. Async shifts the work. It doesn't remove it. Your database, your thread pool, your rate limits — they don't care you're async. #dotnet #sofwareengineering
021
Irina Dominte(Scurtu) @irina.codes · 03/03/2026
Exactly-once delivery doesn't exist. 𝐍𝐨𝐭 𝐞𝐧𝐝-𝐭𝐨-𝐞𝐧𝐝. What you actually need is 𝐢𝐝𝐞𝐦𝐩𝐨𝐭𝐞𝐧𝐭 𝐩𝐫𝐨𝐜𝐞𝐬𝐬𝐢𝐧𝐠: + an 𝐭𝐫𝐚𝐧𝐬𝐚𝐜𝐭𝐢𝐨𝐧𝐚𝐥 𝐨𝐮𝐭𝐛𝐨𝐱. Stop chasing impossible transport guarantees. Engineer deterministic outcomes instead. #dotnet
021
Irina Dominte(Scurtu) @irina.codes · 23/02/2026
That's three different failure modes — and each needs a different tool. 🛠️ ⏱️ 𝐓𝐈𝐌𝐄𝐎𝐔𝐓 → caps how long you'll wait on a single call 🧱 𝐁𝐔𝐋𝐊𝐇𝐄𝐀𝐃 → isolates capacity per dependency, so one slow service can't sink the rest 🚦 𝐑𝐀𝐓𝐄 𝐋𝐈𝐌𝐈𝐓𝐈𝐍𝐆 → controls inbound throughput before it hits your internals
051
Irina Dominte(Scurtu) @irina.codes · 16/04/2025
Not all rate limiting strategies work the same way! Whether you're preventing DDoS attacks, ensuring fair usage, or controlling expensive operations, choosing the right algorithm is key. Each method has strengths and trade-offs—so how do you decide? 🤔 #dotnet
010
Irina Dominte(Scurtu) @irina.codes · 24/03/2025
Logging - it’s about clear, actionable logs that make troubleshooting, debugging, and monitoring easier. By using structured logging, proper log levels, and central log config, you create efficient, searchable logs that improve tracing & correlation across microservices. #dotnet #logging
000
Irina Dominte(Scurtu) @irina.codes · 25/02/2025
Circuit Breaker Pattern 🔧 When services fail, resilient architecture ensures your system doesn’t collapse. It helps prevent repeated failures, improves system stability. #SoftwareArchitecture #CircuitBreaker #Resilience #Microservices #DevOps #dotnet
010
Irina Dominte(Scurtu) @irina.codes · 18/02/2025
🚀 Retry vs. Hedging⚡ When handling failures in distributed systems, two key strategies stand out: Retry and Hedging. But which one is right for your application? 🤔 Let’s discuss! ⬇️ #dotnet #resilience #retry #hedging
030