{"id":20044854,"url":"https://github.com/shashankrnr32/mongodb-application-sharding","last_synced_at":"2026-04-16T10:31:07.321Z","repository":{"id":149672408,"uuid":"621832388","full_name":"shashankrnr32/mongodb-application-sharding","owner":"shashankrnr32","description":"Application Sharding with MongoDB","archived":false,"fork":false,"pushed_at":"2023-04-19T16:13:17.000Z","size":1409,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-02T07:38:23.200Z","etag":null,"topics":["application-sharding","database","java","mongodb","nosql","sharding","sharding-jdbc","sharding-sphere","shardingsphere","spring","spring-boot"],"latest_commit_sha":null,"homepage":"https://shashankrnr32.gitbook.io/mongodb-application-sharding","language":"Java","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/shashankrnr32.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-31T13:36:33.000Z","updated_at":"2023-04-08T13:59:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"d07b5684-6102-458e-800b-1424b3b94f97","html_url":"https://github.com/shashankrnr32/mongodb-application-sharding","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/shashankrnr32/mongodb-application-sharding","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shashankrnr32%2Fmongodb-application-sharding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shashankrnr32%2Fmongodb-application-sharding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shashankrnr32%2Fmongodb-application-sharding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shashankrnr32%2Fmongodb-application-sharding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shashankrnr32","download_url":"https://codeload.github.com/shashankrnr32/mongodb-application-sharding/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shashankrnr32%2Fmongodb-application-sharding/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31881953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["application-sharding","database","java","mongodb","nosql","sharding","sharding-jdbc","sharding-sphere","shardingsphere","spring","spring-boot"],"created_at":"2024-11-13T11:02:18.061Z","updated_at":"2026-04-16T10:31:07.298Z","avatar_url":"https://github.com/shashankrnr32.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mongodb-application-sharding\n\n[![Java CI with Maven](https://github.com/shashankrnr32/mongodb-application-sharding/actions/workflows/maven.yml/badge.svg)](https://github.com/shashankrnr32/mongodb-application-sharding/actions/workflows/maven.yml)\n[![Maven Package](https://github.com/shashankrnr32/mongodb-application-sharding/actions/workflows/maven-publish.yml/badge.svg)](https://github.com/shashankrnr32/mongodb-application-sharding/actions/workflows/maven-publish.yml)\n[![codecov](https://codecov.io/gh/shashankrnr32/mongodb-application-sharding/branch/main/graph/badge.svg?token=U51FX5G10S)](https://codecov.io/gh/shashankrnr32/mongodb-application-sharding)\n\n[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-black.svg)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n\nMongo DB Application Sharding allows you to shard your Mongo DB cluster from your application using different\nstrategies. This project is inspired by [Apache's shardingsphere](https://github.com/apache/shardingsphere) which\nenables the users to shard the relational databases through the application.\n\nApplication Sharding Strategies supported by the library\n\n1. Collection Sharding Strategy\n2. Database Sharding Strategy\n3. Composite Sharding Strategy\n\n## Get Started\n\n### Spring / Spring Boot Projects\n\nTo use this library in your project, just add the package `sharding-spring`\nas a dependency to your project.\n\n```xml\n\u003c!-- sharding-spring --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.alpha.mongodb\u003c/groupId\u003e\n    \u003cartifactId\u003esharding-spring\u003c/artifactId\u003e\n    \u003cversion\u003e${mongodb.sharding.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Mongo DB Clients - Application built without Spring.\n\n```xml\n\u003c!-- sharding-driver --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.alpha.mongodb\u003c/groupId\u003e\n    \u003cartifactId\u003esharding-driver\u003c/artifactId\u003e\n    \u003cversion\u003e${mongodb.sharding.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nTo see a sample usage of different Sharding Strategies, visit the documentation\n[here](https://shashankrnr32.gitbook.io/mongodb-application-sharding).\n\n## Features\n\n1. Supports 3 different sharding strategies for Spring / Spring Boot projects by extending MongoTemplate.\n2. Supports Reactive Mongo Templates (for all the sharding strategies)\n3. Sharding support for Mongo Clients (without the need of spring dependencies). This supports both executable and\n   reactive Mongo Clients.\n4. Hint Resolution through ThreadLocal and callback based mechanism.\n5. Automatic Hint Resolution Callback discovery for Spring Beans using ApplicationContext\n6. Custom configuration available for Sharding, validation of shards etc.\n7. Tested using Spring's Mongo Template and Repository\n\n## Roadmap\n\nThis project is in its budding stage. But I do see a lot of features that can be added.\n\n1. More customization to Sharding options to allow dynamic shards, custom validations etc.\n2. Support non-sharded collections within a sharded database.\n3. Support to query from all the shards when the library is unable to route the query to a particular shard.\n4. Configuring Sharding from property files without writing any Java Code\n5. Support Aggregation queries\n7. And so much more...!\n\n## Code Analysis\n\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=shashankrnr32_mongodb-application-sharding\u0026metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=shashankrnr32_mongodb-application-sharding\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=shashankrnr32_mongodb-application-sharding\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=shashankrnr32_mongodb-application-sharding\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=shashankrnr32_mongodb-application-sharding\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=shashankrnr32_mongodb-application-sharding\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=shashankrnr32_mongodb-application-sharding\u0026metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=shashankrnr32_mongodb-application-sharding\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=shashankrnr32_mongodb-application-sharding)\n\n## Author\n\n[Shashank Sharma](https://github.com/shashankrnr32)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshashankrnr32%2Fmongodb-application-sharding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshashankrnr32%2Fmongodb-application-sharding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshashankrnr32%2Fmongodb-application-sharding/lists"}