|
|
|
|
|
by emileifrem
2783 days ago
|
|
Feel free to have a look again and let me know your thoughts. emil@neo4j.com or @emileifrem. 20 of the 25 biggest banks in the world use Neo4j today, and fraud detection (specifically fraud rings) is a really popular use case. (So much so that if you search for "fraud detection" in an incog chrome window, https://neo4j.com/use-cases/fraud-detection/ is on the first page of google). Btw, we've scaled out horizontally for reads since 2011 but our initial Paxos based implementation was shaky. Since then we've revised it twice and our third generation Raft based architecture is significantly better. If you add multi clustering support + causal consistency and a bunch of other improvements I think our horizontal scalability story is very different today from a few years ago. Lemme know if you try it out and disagree! |
|
EPaxos[0] - flexible/minimal quorums + if you're willing to know ops are commutative you can fast-path, and you can flexibly quorum
WPaxos[1] - flexible/minimal quorums + dynamic partitioning via object stealing for spreading writes around
The main benefit of these is of course getting over raft's weakness of the leader being a SPOF.
If you're willing to go with causal consistency there's also CmRDTs (operation/command Replicated Data Types) which are generalizable to "pure operation based CRDTs"[2] which make the merging problem trivial and should in theory boil things down to replication lag while allowing writes at every node.
[0]: https://www.cs.cmu.edu/~dga/papers/epaxos-sosp2013.pdf
[1]: https://cse.buffalo.edu/tech-reports/2017-03.pdf
[2]: https://arxiv.org/pdf/1710.04469.pdf