faulkners.io

no sql for you...

There is a new context for how we manage and use databases. In Martin Fowler and Pramod Sadalage's "NoSQL Distilled", we explore Aggregate Data Models and Aggregate Oriented databases - all heavliy influenced by Eric Evans' "Domain Driven Design".

Some key points about NoSQL...

Use an application service (web service) to offer access and security around yours database. Don't integrate at the database layer itself... too much coupling here folks.

Think about "Polyglot Persistance". Adding an abstraction layer for datastore allows for the right database store for the right application. Now you can plug in rdbms as another polyglot data store. Tip of the hat to Evans' data repository strategy.

Why not store transactions (business events) as a kind of a recovery log with "Event Sourcing". Now you have a time machine. Replay transactions to get your datastore back to needed state (much like roll-forward recovery from rdbms).

NoSQL offers more flexible domain model, in that the data model can more easily evolve. As requirements change, so does the datastore (just a new version of the data model). And it can increase flexibility for developers with a NoSQL datastore platform.

Like any new paradigm shift, the clutch is a little sticky, so we're going to grind some gears on new thinking like "eventual consistency", but I think we'll eventually get our heads around the tradeoff for improved speed, scale, recovery and ability to evolve our data models in production environments.

| Tagged: #dev