James Lewis is currently a Principal Consultant for ThoughtWorks based in the UK where I have been working as a developer and coach introducing evolutionary architecture practices and agile software development techniques to various blue chip companies: Investment Banks, Publishers and media organisations. I studied Astrophysics in the 90’s but got sick of programming in Fortran – plus as a theoretical physicist I am a much better software engineer. Seventeen years of DBA, software engineering, design and architecture later I’ve turned into a bit if a greybeard. Not due to the requisite 20 years experience but through owning one.
I am a member of the ThoughtWorks Technical Advisory Board providing advice to technology and business leaders within and without Thoughtworks in the areas of web integration, evolutionary architecture, emergent design and lean thinking.
I’ve spoken at a number of national and international conferences on topics ranging from domain driven design, micro-services, SOA and the future of the web to agile adoption patterns and lean thinking.
YOW! 2017 Brisbane
Mixing Causal Consistency and Asynchronous Replication for Large Neo4j Clusters
In this talk we’ll explore the new Causal clustering architecture for Neo4j. We’ll see how Neo4j uses the Raft protocol for a robust underlay for intensive write operations, and how the asynchronous new scale-out mechanism provides enormous capacity for very demanding graph workloads.
We’ll discuss the cluster architecture’s new causal consistency model. Causal consistency is a big leap forward compared to the commonplace eventual consistency which makes it convenient to write applications that use the full capacity of the cluster. In particular we’ll show how despite the mixture of concensus protocols and asynchronous replication, that Neo4j allows users to read their own writes straightforwardly and discuss why this is such a difficult achievement in distributed systems.
For the application developer, we’ll show how Neo4j’s Causal Clustering optimised drivers makes it easyto write applications that scale smoothly from a single server to a large, distributed cluster: a practical motivation for the distributed systems enthusiast.