Order pipeline, event-driven
Event-driven · E-commerce
- Role
- {{P01_ROLE}}
- Stack
- {{P01_STACK}}
- Scale
- {{P01_SCALE}}
- Year
- {{P01_YEAR}}
- Summary
- Replaced a nightly batch with an event log, so order state became a stream instead of a report.
Most systems do not fail at launch. They fail eighteen months later, quietly. The decision nobody wrote down gets reversed. The service nobody owns becomes the one that pages. And the rewrite starts before the last one finished.
These are the parts that break first when a system outgrows the team that wrote it.
A design doc with the trade-offs written down, the rejected options kept, and a decision record that still explains itself two years later. The diagram is the cheap part.
Dual-write, backfill, shadow-read, cut over. Every step reversible, every step in production, and nobody books a maintenance window at 2am.
Paved roads, sane defaults, tracing that reaches the database call. Measured by how quickly a new service reaches production, not by how many tools it has.
{{REFERENCE_QUOTE}}
Traffic across the four service groups of {{METRICS_SYSTEM_NAME}}, sampled every thirty minutes.
Three shapes this usually takes. The middle one is where I do my best work, and it is the one I am looking for now.
Short · 2–4 weeks
You have a design or a system that worries someone, and you want it read properly.
Full-time · {{AVAILABILITY}}
Owning the architecture of a product area and building it with the team, not beside it.
Project · 3–6 months
A move that has been postponed twice because nobody wants to own the rollback plan.
I am looking for the work, and I am not precious about the title. What matters is owning the shape of a system end to end and still writing code — an architect who has not shipped in two years is guessing.
Every week. Roughly half my time on a normal project: the risky slice, the first vertical cut through a new design, the migration script nobody wants to write. The other half is design docs, reviews and being on call for what I shipped.
{{STACK_ANSWER}}
The interesting part is rarely the language. Most of what I do lives in the boundaries: what is a service, what is a message, what happens when half the write succeeded.
A well-factored monolith until the team size or the failure domains force a split, and then a split along seams that already exist in the domain. Most microservice pain I have been called in to fix was a distribution problem added to an unsolved modelling problem.
{{WORK_MODE_ANSWER}} I am in {{LOCATION}} ({{TIMEZONE}}) and I overlap comfortably with {{OVERLAP}}.
Some of this work is under NDA, so the detail here is deliberately thin. Ask and I will walk you through the architecture, the trade-offs and the parts that went wrong, which are usually the more useful half.
Leave an address and I will reply, or write to {{EMAIL}} directly.