jrullmann
For People to Trust You, Reveal Your Intentions – HBR
Vegas: Declarative format for creating and saving visualization designs
Web Accessibility Checklist – The Accessibility Project
Ladder of Abstraction Essay: http://worrydream.com/#!2/LadderOfAbstraction
Stop Drawing Dead Fish Video: https://vimeo.com/64895205
This is awesome, thanks for sharing!
Horizontal Scalability, Response Time and Throughput with SQL
RegExpBuilder – Create regular expressions using chained methods
Graphity: An Efficient Graph Model for Retrieving the Top-k News Feeds for Users
Stop Drawing Dead Fish
Unexpected Use Cases and Possible Usages of an Event Store
The Most Common Problems Which Cause Outages of Production Servers
Fallacies of Distributed Computing Explained [pdf]
Why I Won't Relocate to Work for Your Startup
3 Tips for Selling a Geeky Idea to Everyone
FYI I'm an engineer at FDB, happy to help.
One thing that you could gleam for this article-and I think that this is incorrect-is that the application or operations engineer is responsible for understanding the nuances of distributed systems. In my experience the number of people who are relying on distributed systems is much larger than the number of people who understand these issues.
So what we really need are systems we can build on whose developers understand how to build (and test!) the nuances of data convergence, consensus algorithms, split-blain avoidance, etc. We need systems to gracefully-and automatically-deal with and recover from network failures.
Full disclosure: I'm an engineer at FoundationDB
I'd be interested in a blog post about how you choose this architecture.
However, I think there are challenges with this polygot data store architecture that he doesn't address. Each addition requires due diligence to understand its CAP trade-offs (which the author mentions briefly), scalability and performance characteristics, how to configure, etc. These are non-trivial concerns even for a single database. It's important to consider these challenges when building out a data store or data service.
I'd propose an architecture where the data services layer itself exposes different data models to the application, all of which are persisted in a single data store. Given that many data stores use a key-value store under the covers anyway, translating the specific data model down to a single, persistent data store would simplify operations while exposing the desired data model to the application. (As a caveat, this multi-model approach requires ACID transactions to ensure strict consistency when translating between data models.) This approach provides operational simplicity with just one data store and application efficiency by exposing the "right" data model API.
Full disclosure: I'm an engineer at FoundationDB, a database that provides ACID-compliant polygot data models on a single key-value data store (http://www.foundationdb.com).