Practice 01 / Platform
Platform and distributed systems.
We build the request-serving core of your product: high-throughput APIs, event-driven services, and the stateful systems that must never lose a write. Then we prove they hold their latency and availability budgets while traffic climbs and dependencies misbehave.
What we build
Four kinds of system, one engineering standard.
These are the components we are asked for most. In practice an engagement usually combines several of them, since a serious platform needs an API surface, an event backbone, durable state, and a resilience story that connects all three.
APIs and gRPC services
Request-serving services with a clear contract, versioned schemas, and idempotent writes. We tune connection pooling, timeouts, and concurrency limits so tail latency stays flat as load grows, and we ship gRPC for internal hops where the wire cost actually matters.
Event-driven architecture and messaging
Kafka and log-based messaging with well-defined topics, partition keys, and consumer groups. We decouple producers from consumers so a slow downstream service becomes lag to work off, not a cascade of failed requests upstream.
Resilience engineering
Backpressure, circuit breakers, bounded queues, request hedging, and graceful degradation. When a dependency slows down, the system sheds load in a controlled way and keeps serving what it can, instead of exhausting threads and taking everything with it.
Stateful systems
Ledgers, durable queues, and workflow state where correctness is not optional. We use the transactional outbox pattern, idempotency keys, and exactly-once effective processing so a retry or a redeploy never double-applies a write or leaves a partial transaction behind.
Reference targets
What good looks like, by system type.
These are starting points we tune to your traffic and risk profile. A read-heavy API and a financial ledger do not deserve the same budgets, and we set them accordingly.
| System type | p99 latency | Availability | Throughput | RPO / RTO |
|---|---|---|---|---|
| Read API | Under 30 ms | 99.95% | 80k req/s | Cache-backed / under 1 min |
| Transactional API | Under 50 ms | 99.98% | 50k req/s | Under 5 s / under 2 min |
| Event pipeline | Under 100 ms end to end | 99.9% | 3.5M events/s peak | Replay from log / under 5 min |
| Ledger core | Under 40 ms settle | 99.99% | 12k tx/s | Zero data loss / under 2 min |
Related work
This practice, in production.
The Nordbank ledger is a working example of everything on this page: a stateful core, exactly-once effective writes, and a strict latency budget under real transaction load.
Real-time ledger for Nordbank
A double-entry core that settles balances the moment a transaction lands, built on an outbox and idempotent writes so a retry never double-posts. We removed an overnight batch and held four nines of uptime.
ECORTIQ took a ledger we were afraid to touch and turned it into the most reliable service we run. They understood the failure modes better than we did.
What carried over
- Outbox patternWrites and events committed in one transaction.
- Idempotency keysSafe retries across the whole write path.
- Load tested to failureWe found the ceiling before customers did.
Common questions
What technical buyers ask us first.
Start
Have a platform that has to hold?
Tell us the throughput, latency, and availability you need, and where the current system hurts. We will tell you honestly whether we are the right team for it.