Distributed systems

Systems that coordinate data, events, identity, and failure across multiple components or organisations.

  • DCS-BBN · Project · A peer-to-peer archival storage network using Solidity smart contracts, Hyperledger Fabric, and privacy-preserving verification. Published by Springer.
  • Automatic trading system · Project · A low-latency trading system that combines live brokerage APIs, market-data streams, quantitative signals, position sizing, and automated risk controls.
  • Decentralized Cloud Storage Based on Blockchain Networking · Research · Published research on attribute-based access control, blockchain security events, and untrusted cloud storage.
  • "Active-active multi-region design: the honest trade-offs" · Note · Every few years a team decides it needs active active multi region, usually after an outage, with the requirement phrased as "we can never go down." Active active is legitimate for a…
  • "Caching strategy for distributed systems" · Note · Caching is the highest leverage performance tool in distributed systems and the most reliable source of subtle correctness bugs. Every cache is a bet: that serving slightly stale data…
  • "Event-driven architecture pitfalls and how to avoid them" · Note · Event driven architecture has a seductive pitch: services decoupled in time and space, reacting to facts instead of calling each other. The pitch is not wrong. But the failure modes of…
  • "Sagas for distributed transactions: choreography vs orchestration" · Note · The moment a business transaction crosses a service boundary, ACID stops applying. An order touches inventory, payment, fraud screening, and fulfillment — four services, four databases,…
  • Plan schema evolution as a production migration · Note · Database schema changes are distributed system changes. Application instances, background jobs, replicas, analytical consumers, and rollback versions rarely update at the same instant.…
  • Use data contracts to make ownership executable · Note · A data contract makes the expectations between a data producer and its consumers explicit. It covers more than column names: meaning, ownership, quality, timeliness, compatibility,…
  • Evolve event contracts without breaking consumers · Note · An event is a public record of something that happened. Once multiple consumers depend on it, its schema, meaning, ordering, and delivery behavior form a contract—even if the producer…
  • Design APIs for safe retries · Note · Networks fail in ambiguous ways. A client can time out after the server commits a change but before the response arrives. Retrying may be necessary, yet repeating the operation may…