NearDB is a simple database that leverages cloud infrastructure like document storage and CDN to deliver an inexpensive unbelievably scalable document database optimized for reads and perfect for edge applications.
Motivation
While working on building edge applications for higher performance and lower latency there is a need store persistent data also on edge.
Distributed database solutions but they are very involved and costly while having a lower global footprint than a CDN.
Leverage ubiquitous and mature infrastructure like cloud storage and CDNs to deliver a persistent, performance, and inexpensive db solution from the edge.
Use with Edge Apps/Functions
- Zeit Now - Global Serverless Deployments
- Cloudflare Workers - Serverless applications on Cloudflare's global network
- Lambda@Edge - Run Lambda functions on CloudFront
- Fly.io - Javascript at the edge
Works with the following for database storage
- AWS S3
- Google Cloud Storage
- Digital Ocean Spaces
- Minio
- any S3 API compatible storage service
Client-side compatibility
Keep in mind while using this for client-side that ACL is done on the bucket/CDN level. It was designed for edge server use so client implementation can be a bit tricky. Open an issue with your specific case, I would love to hear how you plan on using it.
- Browser
- React Native
Who is this for
This is perfect for persistent data that is read frequently and needs to be avaialble on the edge application to deliver dynamic data while keeping the costs low. Some examples of the best uses are:
- Key-value
- Configuration
- Cached data
Probably not for you if
- You plan on using this as your primary database for an app that has complex data needs.
- You need transactions. (I have some ideas on how to accomplish this, but its currently not implemented.)
- Do many writes/sec in the same document. Reads are incredibly efficient, fast and inexpensive; however, writes are always at the origin.
Documentation & Guides
See NearDB.org
TypeDoc
See the documentation generated from TypeDoc.
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
License
This project is licensed under the MIT License - see the LICENSE file for details