Graph Database on top of Bigtable
npm install yildiz

Thin graph database layer on top of Google Bigtable.
[![Build Status][build-badge]][build] [![Version][version-badge]][package] [![MIT License][license-badge]][license] ![node][node-badge] [![Swagger][swagger-badge]][swagger-url]
YildizDB acts as a highly scaleable HTTP layer in front of Google Bigtable. It helps you store billions of relations between nodes in edges and resolve them in milliseconds. A small access layer helps you manage multiple namespaces with ease. YildizDB scales to hundrets of Terabytes. YildizDB excells in $N:N$ non nested relationships.
* simple namespacing (table separation) with prefixes
* simple access management through tokens
* multi-tenancy through table prefixes (with access management)
* high read and write performance
* fast read access under heavy write load
* able to handle billions of edges and nodes
* scales beyond Terabytes
* lightweight deployments (small Node.js footprint)
* ttl feature for all resources
* HTTP [Open API][swagger-url]
* Kubernetes HELM charts
* Highly async API based on fastify
* Thin layer on top of Google's GRPC Bigtable API
* Hashing and translating all string identifiers into integer representations via murmurhash3 automatically
* Multiple complex caching layers
* Custom Bigtable cache table speed up by Google Memorystore (Redis)
* All Memorystore hits also speed up by In-Memory store
* Fetch job that keeps active nodes refreshed in cache
* Node.js Client
* Any Http Client can be used to access the HTTP-Interface
* You will need a Google Cloud Project with a running Bigtable cluster
* Additionally YildizDB requires a Memorystore (or Redis) instance
* Configure ./config/bigtable.json accordingly
* Install and start: npm install -g yildiz and yildizdb -p 3058 -l ./config/bigtable.json
* A word on configuration can be found here
* Use right alongside your code
* Spawn server via http interface
* YildizDB is designed to be deployed as simple platform service
* it requires Node.js > 9.x.x and Redis > 3.x
* It simply requires its npm module as well as a config file that describes
the connections to Bigtable and Memorystore (Redis)
* It scales best with an HTTP load balancer in front of it e.g. NGINX
* We run and scale it very successfully in Google's Kubernetes Engine
* We also offer HELM charts
* Read some more about the config file here
* Yildiz exposes Prometheus Metrics @ /admin/metrics
* Read more about it here
* Configure ./config/bigtable.json accordingly
* Run tests via yarn test
* Start via yarn http
* yildiz means :star: in turkish
* Best practice
* Open API/Swagger JSON
* Access management
* Stats and metrics
* YildizDB Use-cases
* Why develop another Graph Database?
* How does it work?
* Storing node relations even faster
* The popular right node concept
* "Depth" or "Create" edge creation
* Configuration & Deployments
* This project is not affiliated with Google
* License is MIT see
[build-badge]: https://quay.io/repository/yildizdb/yildiz/status "Docker Repository on Quay"
[build]: https://quay.io/repository/yildizdb/yildiz
[version-badge]: https://badge.fury.io/js/yildiz.svg
[package]: https://www.npmjs.com/package/yildiz
[license-badge]: https://img.shields.io/npm/l/yildiz.svg
[license]: https://opensource.org/licenses/MIT
[swagger-url]: https://petstore.swagger.io/?url=https://raw.githubusercontent.com/yildizdb/yildiz/master/docs/swagger.yml
[node-badge]: https://img.shields.io/node/v/yildiz.svg
[swagger-badge]: https://img.shields.io/badge/Swagger%20UI-OK-orange.svg