
James Thornton
Principal Software Architect
I design large-scale distributed systems for data-intensive applications. Currently focused on event-driven architectures and real-time processing at planetary scale.
Expertise
With fifteen years in software engineering, I specialize in designing systems that handle billions of events per day without breaking a sweat. My work spans the full stack of distributed computing — from consensus protocols and data replication strategies to API design and developer experience.
I've architected platforms processing over 2 billion daily events with 99.99% uptime, serving customers across financial services, ad tech, and real-time analytics.
Technical Depth
- Event Sourcing & CQRS — Battle-tested patterns for complex domain modeling
- Stream Processing — Kafka, Flink, and custom solutions for real-time analytics
- Distributed Consensus — Raft implementations and multi-region coordination
- API Design — RESTful, GraphQL, and gRPC at scale with versioning strategies
Approach
I believe architecture is fundamentally about trade-offs, and the best architects are the ones who make those trade-offs explicit and reversible. I favor evolutionary architecture over big upfront design, and I always start with the simplest thing that could work.
The purpose of architecture is to support the life cycle of the system. Good architecture makes the system easy to understand, easy to develop, easy to maintain, and easy to deploy.
Publications
I've authored chapters in two O'Reilly books on distributed systems design and maintain a technical blog with over 200 articles read by 50,000 monthly visitors. My writing focuses on practical patterns, failure mode analysis, and lessons from production incidents.