https://github.com/karmaniverous/entity-manager
Rational indexing & cross-shard querying at scale in your NoSQL database so you can focus on your application logic.
https://github.com/karmaniverous/entity-manager
dynamodb sharding
Last synced: 3 months ago
JSON representation
Rational indexing & cross-shard querying at scale in your NoSQL database so you can focus on your application logic.
- Host: GitHub
- URL: https://github.com/karmaniverous/entity-manager
- Owner: karmaniverous
- Created: 2023-02-14T10:23:42.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-07-08T09:32:14.000Z (6 months ago)
- Last Synced: 2025-10-13T15:35:06.212Z (3 months ago)
- Topics: dynamodb, sharding
- Language: TypeScript
- Homepage: https://docs.karmanivero.us/entity-manager/
- Size: 4.23 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
> [API Documentation](https://docs.karmanivero.us/entity-manager/) • [CHANGELOG](https://github.com/karmaniverous/entity-manager/tree/main/CHANGELOG.md)
# entity-manager
**EntityManager implements rational indexing & cross-shard querying at scale in your NoSQL database so you can focus on your application logic.**
> The Typescript refactor is still in flux, but stabilizing! Still fleshing out the [demo](https://github.com/karmaniverous/entity-manager-demo) & [documentation](https://karmanivero.us/projects/entity-manager/intro/).
If you have any questions, please [start a discussion](https://github.com/karmaniverous/entity-manager/discussions). Otherwise stay tuned!
## Why?
Traditional relational database systems like MySQL or SQL Server implement indexing & scaling strategies at a platform level based on schemas defined at design time.
NoSQL platforms like DynamoDB offer far better performance at scale, but structured index & shard keys must be defined as data elements and exploited by application logic in data retrieval & cross-shard queries. **They shift the burden of complexity from the database platform to the developer!**
EntityManager encapsulates a provider-agnostic, highly opinionated approach to the [single-table design pattern](https://aws.amazon.com/blogs/compute/creating-a-single-table-design-with-amazon-dynamodb/).
With EntityManager, you can:
- Define related data entities & structured keys wth a simple, declarative configuration format.
- Specify a partition sharding strategy that maximizes query performance while permitting planned, staged scaling over time.
- Add or remove structured index keys from entity data objects with a single method call.
- Perform paged, cross-shard, multi-index queries with a single method call.
---
Built for you with ❤️ on Bali! Find more great tools & templates on [my GitHub Profile](https://github.com/karmaniverous).