Fundamentals
Splitgill is a versioned storage and search library. It is a management layer that sits on top of MongoDB and Elasticsearch to store data and track the versions of that data.
MongoDB provides the persistent, versioned storage, while Elasticsearch provides a searchable view on that versioned data.
A number of considerations are addressed by the Splitgill data model:
- the latest data needs to be searchable
- all versions of the data need to be searchable at any specific version
- as many of the powerful search features in ElasticSearch need to be available for users as possible
- changes in data type between versions of a field need to be supported
- the model should support efficient type querying to assist with searches
- the model should support all JSON types nested at any level
- string
- number
- object
- array
- boolean
- null