It’s been a while since I last blogged because I’ve been heads-down with my team developing a novel clustering architecture and consistency model for Neo4j. The new cluster architecture is designed to provide data safety and scale for graph workloads while providing a simpler programming model to the user based on causal consistency.
In essence what we’ve developed is a database cluster architecture where we use the Raft consensus protocol to ensure data is safely replicated; asynchronous replication to read-replicas to enable massive scale; and wrapped it all in a user-facing protocol that means you will always be able to read the effects of your writes – causal consistency. To learn more, here is a recent talk from a Neo4j 3.1 webinar (video /slides)
The productivity leap enabled by causal consistency versus eventual consistency is amazing, and we’re proud of what we’ve achieved with Neo4j Causal Clustering. But we’re not resting there. We’re now building beyond Causal Clustering to a homogeneous, large-scale distributed database for native Peta-scale graph data.
We have several openings on my team for people with an interest in distributed systems and fault tolerance. Our goal is to make Neo4j a the default mission-critical, fault-tolerant data platform for all kinds of systems. So if you’re interested in things like transactions, consensus, quorums, graph partitioning, fault injection, or know your partial ordering from your total, then we should talk.
The roles are based in (central) London, UK or Malmö, Sweden. If you’d like to do some amazing computing science for your day job then please get in touch, I’d love to work with you and I think you’d enjoy working with us very much!