FoundationDB: A distributed unbundled transactional key value store
In theory, their design makes sense: separating the component pieces makes it easier to adapt to different systems&#x2F;scenarios, it allows you to more succinctly map out the architecture (and hopefully simplify interfaces), you have that whole testing framework you can use on the individual pieces, etc.<p>The problem is with implementation. The more you separate components, the more code you have to add to allow them to interoperate. The more code, the more complexity. The more complexity, the more bugs. In addition, when you continue to separate components out into new failure domains that have a higher probability of failure (&quot;3 components running on 1 node&quot; -&gt; &quot;3 components running on 3 separate nodes&quot;) you increase the chances of problems even more. So, while the design looks nice in theory, and I&#x27;m sure they have some wonderful reports about how thorough their test framework is, in practice it might be a tire fire (depending on how it&#x27;s actually used).<p>Some people are going to go, &quot;I&#x27;ve been using this in production for a year, it&#x27;s rock solid!&quot; Well, people said that about Riak, until they wanted to set it on fire when they found out how buggy the implementation was at actually handling various errors and edge cases, and that they each had to hire dedicated Riak programmers just to fix all its problems. You can make large-scale Riak clusters work &quot;at scale&quot; if you hire enough on-call to constantly fight fires and monkey-patch the bugs and juggle clusters and nodes and repair indexes, and hand-wave outages and flaws as due to some other issue (&quot;the cluster was completely hosed and had to be recovered from backup because the disks got corrupted and a node went down and a network partitioned all at once, it&#x27;s not Riak&#x27;s fault&quot;).<p>(looking at this HN thread, it seems like my assumption may be correct: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27424605" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27424605</a>)