Service 01

Systems architecture

Event-driven and distributed platforms that hold their guarantees under real load. Legacy systems taken apart without a big-bang cutover.

Most systems that fail under load have a boundary in the wrong place. The code is rarely the problem.

Profiling finds hot code. It cannot find a missing seam. A pricing engine we took apart had a twelve-second median that had been tuned for years. Decomposition gave a six-fold improvement in weeks.

What we design

  • Boundaries. Where state must be consistent, and where eventual consistency is correct. Moving a boundary after teams have formed around it is very costly.
  • Delivery guarantees. "We use Kafka" is not a guarantee. A transactional outbox with idempotent consumers keyed on a deterministic identifier is.
  • Failure modes. Which components may degrade, which must not, and what each does when a dependency stops answering.

How we work

We work with your engineers, in the open. Every consequential decision goes into an ADR with the alternatives and the reason for the choice.

We sequence a migration so each step is valuable on its own and can be reversed. We use the strangler-fig pattern, with live traffic behind the existing interface and no cutover weekend. A step that cannot be rolled back gets split until it can.

Engagement shapes

Three ways this is usually bought.

  1. 1–2 weeks

    Architecture review

    We read the current system against the load it will see. You get a written assessment with risks ranked and priced. Often that is the whole engagement.

  2. 4–10 weeks

    Design engagement

    We design the target architecture with your team. Event storming, boundary definition, ADRs and the migration sequence.

  3. Ongoing, part-time

    Embedded architect

    We sit inside delivery through the hard middle of a migration, when the decisions that matter are made in code review.