{"id":19903401,"url":"https://github.com/stargate/dynamodb-adapter","last_synced_at":"2026-02-27T15:30:56.889Z","repository":{"id":62960651,"uuid":"542335745","full_name":"stargate/dynamoDB-adapter","owner":"stargate","description":"A DynamoDB adapter for Apache Cassandra","archived":false,"fork":false,"pushed_at":"2022-12-30T15:41:52.000Z","size":1114,"stargazers_count":1,"open_issues_count":3,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-03T00:36:45.098Z","etag":null,"topics":["cassandra","dynamodb","nosql","stargate"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stargate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-28T00:05:13.000Z","updated_at":"2024-04-07T08:28:10.000Z","dependencies_parsed_at":"2023-01-31T12:00:48.845Z","dependency_job_id":null,"html_url":"https://github.com/stargate/dynamoDB-adapter","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/stargate/dynamoDB-adapter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate%2FdynamoDB-adapter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate%2FdynamoDB-adapter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate%2FdynamoDB-adapter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate%2FdynamoDB-adapter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stargate","download_url":"https://codeload.github.com/stargate/dynamoDB-adapter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate%2FdynamoDB-adapter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29901748,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T14:46:13.553Z","status":"ssl_error","status_checked_at":"2026-02-27T14:46:10.522Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["cassandra","dynamodb","nosql","stargate"],"created_at":"2024-11-12T20:23:35.815Z","updated_at":"2026-02-27T15:30:56.871Z","avatar_url":"https://github.com/stargate.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cassandra DynamoDB Adapter\n\nThis project is a DynamoDB adapter for [Stargate](https://stargate.io/), a data API gateway for Apache Cassandra.\nWith this adapter as well as Stargate core components, you can run DynamoDB workloads against Apache Cassandra with\nalmost no change to your application code. In other words, your existing application code can read and write to Apache\nCassandra with an illusion that it is interacting with Amazon DynamoDB.\n\n---\n**:warning: NOTE**\n\nThis repository was originally created by students in the Master of Computational Data Science (MCDS) program at Carnegie Mellon University (CMU) as a [capstone project](https://mcds-cmu.github.io/11632/f22/). The repository has been donated to the Stargate project as an example of an API Service created according to the [Stargate v2 architecture](https://stargate.io/2022/10/26/stargate-v2-ga.html). \n\nIt is not a full implementation of the Dynamo DB API and is not considered production ready, or officially supported by the Stargate project at this time.\n\n---\n\n## User guide\n\nThe following steps assumes you are running everything locally. See [dynamoDB-adapter-example](https://github.com/stargate/dynamoDB-adapter-example)\nfor an example project and a demo video.\n\n### Step 1: Launch Cassandra + Stargate coordinator + DynamoDB adapter\n\nWe recommend using docker to launch the program. We provided you with a docker-compose script and a start script [here](./docker-compose).\n\n### Step 2: Generate authentication token\n\nThen you should be able to visit [Auth API: /v1/auth/token/generate](http://localhost:8081/swagger-ui/#/auth/createToken_1) to generate a token with\nthe following payload:\n\n```json\n{\n  \"key\": \"cassandra\",\n  \"secret\": \"cassandra\"\n}\n```\n\nAlternatively, you can run the following command in your terminal:\n\n```bash\ncurl -X 'POST' \\\n  'http://localhost:8081/v1/auth/token/generate' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n  \"key\": \"cassandra\",\n  \"secret\": \"cassandra\"\n}'\n```\n\nYou will get a response that looks like this:\n\n```json\n{\n  \"authToken\": \"726a2b56-88e4-4ada-91b6-e9617044ad36\"\n}\n```\n\nCopy the generated token value (i.e. `726a2b56-88e4-4ada-91b6-e9617044ad36` in this example) since we will need this token to authenticate all our requests.\n\n### Step 3: Create Keyspace\n\nIf you haven't done so, invoke [/v2/keyspace/create API](http://localhost:8082/swagger-ui/#/default/post_v2_keyspace_create) to create a keyspace.\nNote that you need to first click on `Authorize` and enter the auth token generated just now. The generated keyspace has a fixed name, \"dynamodb\".\n\nAlternatively, you can also run the following command in your terminal:\n\n```bash\ncurl -X 'POST' \\\n  'http://localhost:8082/v2/keyspace/create' \\\n  -H 'accept: */*' \\\n  -H 'X-Cassandra-Token: \u003cYOUR GENERATED TOKEN\u003e' \\\n  -H 'content-type: application/json;charset=UTF-8 '\n```\n\n### Step 4: Add endpoint and auth token to DynamoDB client\n\nYou should set the `aws.accessKeyId` property to be your generated token, and `aws.secretKey` to any string. Below\nis an example in Java.\n\n```java\npublic AmazonDynamoDB getClient() {\n    Properties props = System.getProperties();\n    props.setProperty(\"aws.accessKeyId\", \"\u003cYOUR GENERATED TOKEN\u003e\");\n    props.setProperty(\"aws.secretKey\", \"any-string\");\n    AwsClientBuilder.EndpointConfiguration endpointConfiguration =\n        new AwsClientBuilder.EndpointConfiguration(\"http://localhost:8082/v2\", \"any-string\");\n    return AmazonDynamoDBClientBuilder.standard().withEndpointConfiguration(endpointConfiguration).build();\n}\n```\n\n### Optional: Use DynamoDB low-level API\n\nYou can also use DynamoDB low-level HTTP API. You can use [Swagger UI](http://localhost:8082/swagger-ui/) for experiments.\n\n## Development guide\n\nThis project uses Quarkus, the Supersonic Subatomic Java Framework.\nIf you want to learn more about Quarkus, please visit its [website](https://quarkus.io/).\n\nIt's recommended that you install Quarkus CLI in order to have a better development experience.\nSee [CLI Tooling](https://quarkus.io/guides/cli-tooling) for more information.\n\nNote that this project uses Java 17, please ensure that you have the target JDK installed on your system.\n\n### Create a Docker image manually\n\nYou can create a Docker image named `liboxuanhk/cassandra-dynamodb-adapter` using:\n```\n./mvnw clean package -Dquarkus.container-image.build=true -DskipTests=true\n```\n\nIf you want to learn more about building container images, please consult [Container images](https://quarkus.io/guides/container-image).\n\n### Release process\n\nThe release process is automated. Whenver a commit is tagged\nwith `v1.x.y`, a release will be triggered on GitHub Actions. Specifically,\na release workflow includes the following steps:\n\n1. Tag the commit to be released. This is the only\n   step done by the developer.\n2. Build a container image.\n3. Publish the container image to Docker Hub.\n4. Create a GitHub release.\n5. Create a Pull Request to bump the project version\n   in maven.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstargate%2Fdynamodb-adapter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstargate%2Fdynamodb-adapter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstargate%2Fdynamodb-adapter/lists"}