{"id":17283739,"url":"https://github.com/prettymuchbryce/deltadb","last_synced_at":"2025-03-26T16:16:20.236Z","repository":{"id":29554719,"uuid":"33093922","full_name":"prettymuchbryce/deltadb","owner":"prettymuchbryce","description":"A proof-of-concept time-series database","archived":false,"fork":false,"pushed_at":"2015-03-30T04:08:14.000Z","size":144,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T16:55:45.676Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prettymuchbryce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-29T23:33:57.000Z","updated_at":"2017-10-25T15:43:07.000Z","dependencies_parsed_at":"2022-08-31T00:50:37.509Z","dependency_job_id":null,"html_url":"https://github.com/prettymuchbryce/deltadb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prettymuchbryce%2Fdeltadb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prettymuchbryce%2Fdeltadb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prettymuchbryce%2Fdeltadb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prettymuchbryce%2Fdeltadb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prettymuchbryce","download_url":"https://codeload.github.com/prettymuchbryce/deltadb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245689509,"owners_count":20656417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T09:52:06.486Z","updated_at":"2025-03-26T16:16:20.215Z","avatar_url":"https://github.com/prettymuchbryce.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"deltadb\n====\n\n\u003e A proof-of-concept time-series database\n\n![delta](https://s3-us-west-1.amazonaws.com/prettymuchbryce/delta.png)\n\n## What is it ?\n\ndeltadb is a proof-of-concept document store. Deltadb maintains history of every action which mutates the state of the database. Deltadb allows for examining the database at a previous state or rolling back to a previous state in a fashion similar to a git repository. Deltadb maintains the concept of a single-branch immutable history tree where even rollbacks themselves are nodes in this tree. Deltadb also experiments with the idea of storing `messages` and `authors` for each mutable change in the database in order to provide more insight into how and why a particular operation in the past was performed.\n\n## Why is it ?\n\nI thought it would be interesting to build a database wherein saving past state was not optional, and was implemented at the database level rather than the application level. This could be a useful safety net for building systems which have a requirement of maintaining an accurate history of certain changes. Furthermore the concept of `messages`, and `authors` might make it easier to pin down which particular system or user was responsible for making any one particular change. For example, if you found a problematic write in the database you could see that the `author` was some particular service in your application stack.\n\n## Status\n\nThis is first and foremost a learning project for me to learn more about databases and Go. You should not use it for anything important.\n\n## Usage\n\n1. Install [go](http://golang.org/)\n2. `cd $GOPATH/src \u0026\u0026 git clone https://github.com/prettymuchbryce/deltadb \u0026\u0026 go get ./...`\n3. Configure the `locations` directory in deltad.conf (This is where the data will live)\n4. `make run`\n5. (in a new terminal) `make cli`\n6. in the cli `connect;`\n7. Type `help;` to see a list of all commands\n\n### TODO\n- Scaling past 1 core\n- Scaling past 1 machine\n- Implementing locking for concurrency\n- Reducing or eliminating the memory footprint of the appendix file (bloom filter or b-tree)\n- Users / Auth\n- Encrypted data\n- go client library\n- Per-document and per-collection rollbacks\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprettymuchbryce%2Fdeltadb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprettymuchbryce%2Fdeltadb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprettymuchbryce%2Fdeltadb/lists"}