Transactions without Transactions
So-called ‘NoSQL’ databases generally don’t support transactions. Yet there are plenty of situations where you might want to use one of these databases and at the same time build an application with transactional semantics. Maybe you want to design a voting system. Or perhaps you need to sell tickets to an assigned-seating event.
As it turns out, even without transactions proper, these problems are tractable and admit of some pretty interesting solutions. Indeed, transaction-less architectures are already widespread in enterprise applications; and these techniques are often useful when designing systems that target non-relational data stores.
This talk will explore a handful of patterns for solving problems without database-backed transactions. We’ll focus on techniques applicable to MongoDB, the popular document-oriented database, but the talk will of
interest to anyone who likes looking at so-called solved problems through fresh lenses.
Richard has wrangled code in bioinformatics, websites, compilers, airfare search, among other randoms. About half a career ago, while boggling at a hairy bioinformatics database schema, he often asked to himself, “Why are we trying to shoehorn as-yet-unstructured facts of cutting-edge science into a data model meant mostly for plumbing parts and payrolls?”