Using Git as a NoSql Database
I’m a Belgian .NET developer and Microsoft MVP currently living in Spain and working in London. I develop mostly server-side applications but also do front-end development using Angular and Aurelia. I write a blog at kenneth-truyers.net (kenneth-truyers.net) about all things development, usually focused around continuous delivery and software development best practices. I published a course on Pluralsight around continuous deployment for .NET applications
Git is not just a source control system. It’s a content tracker we can (ab)use as a NoSQL database. Git has two features that traditional databases don’t support: deduplicated storage and automatic history tracking. This talk discusses how to leverage it and what the benefits and drawbacks are.
The talk starts out by explaining how you can use the internals to build a layer on top of git so applications can use it as a NoSQL database. We’ll dive into blobs, trees and commits and explain their relation and applicability for storing data. Next, we’ll look into the benefits this provides us: efficient storage, built-in versioning, rich data tooling, transactions through commits, easy backups and replications with git push. Lastly we’ll talk about the drawbacks and possibilities to mitigate them: write speed, querying and concurrency The goal of this talk is three fold: * Show attendees creative usage of existing tools * Demonstrate the capabilities of Git and how to leverage its power * Dive into Git’s internals to gain a deeper understanding of a system a lot of developers use, but usually only know on a more superficial level.