and developing real-time trading systems (finance & commodities) - Co-founder of Adaptive - Consultancy - We deliver event driven platforms for our clients - Offices in London, Barcelona, Montreal and New York - 120 people
messages (the log) - The sequence is replicated to each node Guaranteed even if - One of the servers fails - Network fails This architecture uses Command Sourcing
Asynchrony - Durability (Raft log) - Messaging - Cluster client <> cluster - Cluster node <> cluster node You don’t have to build it yourself! - http://atomix.io/copycat/ and others State Machine - System logic & state - Single threaded code - Stateful - No Framework dependency You can focus on the domain problem and build a clean model
guaranteed - The cluster can “own” all the required data - Request processed in-memory - Less code, synchronous, much more simple - Side-effect - Data and logic in one place yield great performance Service Client Stateless Durable Transactional LOGIC DATA Client LOGIC + DATA
the same version of the code in an IDE - Replay - Same Exception, with debugger attached - Simple to reproduce bugs Application logs - Sequence of logs statements, no interleaving (single threaded code) - Simple to read