Noms may have a funny name, but the premise of the project is anything but. Data science a big deal in the business world, and not just among large enterprises. Startups and small businesses alike are finding the benefits of gathering and analyzing large amounts of structured data to improve their products and services, as well as to explore ways to expand their business into new areas.
Developers may have had a great solution right under their noses all along in Git, a popular version control system used in software development. With Git, multiple users on a team can have local copies of in-development software, make changes to various files in these projects, and submit those changes in a non-destructive fashion to a centralized host.
Other developers can also fork that project and use it as a base for a new project. Content contributed through Git is added to the project without overwriting the data that was already in place. That makes it easy to address a specific change and load the project as it existed at virtually any point in its development. Nothing is really lost – even when data is deleted and those deletions are committed to the main repository.
This method for coordinated contribution is extremely useful to developers, but what about to the software itself? What if multiple software systems were able to add and sync large amounts of data between them?
How Noms helps
This is where Noms comes in (and a shoutout to Nommy, the snacky otter). It’s a decentralized database that scales incredibly well and is written to store structured data rather than the text files you would find in Git-style version control systems. It is open source and created by the folks at Attic Labs.
Noms is built on the concepts of Git, Camlistore, bup, IPFS, and others, with a structure intended for use by software and not humans. So, instead of developers contributing data to the database, software will be able to contribute and access this information as it needs it without manual human intervention.
Because it’s built with a workflow that developers are already familiar with, its implementation into existing projects should be smooth. Data stored with Noms is able to be forked, diff, and merged just as easily as any Git project.
From an accessibility standpoint, Noms offers some interesting benefits. Its content-aware structure enables software to not only see the data in its current state, but to see how that data has changed and compare versions of that data.
It also accepts data from numerous sources, and enables your software to transform that data so it meets your needs. This transformation is non-destructive so you can reference its original form.
Noms is an interesting concept to tackle a problem becoming increasingly prevalent as multi-device, networked systems that benefit from shared data resources – such as with IoT – enter the marketplace.