Skip to content

a simple database web API in Go on top of Cassandra and ElasticSearch

Notifications You must be signed in to change notification settings

JPMoresmau/nsrep

Repository files navigation

nsrep is a toy project of building a little database with a REST and GraphQL API in Go.

It stores items, which are objects with a name and a type, arbitrary contents and an ID that is made of string components (like a path). Like a file path, items whose id start with the id of another item are said to be in the second item's namespace, and will be deleted with the parent item is deleted. IDs have to be generated and provided by the client.

The base implementation uses Cassandra and ElasticSearch as the underlying data stores:

  • Cassandra stores all versions of each item, including deletions, and provide history, since Cassandra writes are cheap
  • ElasticSearch provides quick search capabilities on the current version of items

There is a base REST API to do CRUD on items, view their history and do a simple search. There is also a GraphQL API to do searches in the namespace structure.

About

a simple database web API in Go on top of Cassandra and ElasticSearch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages