{"id":21877623,"url":"https://github.com/rbiedrawa/spring-webflux-aws-dynamodb","last_synced_at":"2026-04-11T11:02:20.536Z","repository":{"id":162193127,"uuid":"362177066","full_name":"rbiedrawa/spring-webflux-aws-dynamodb","owner":"rbiedrawa","description":"This repository contains sample Amazon DynamoDB CRUD application with Spring Webflux and TestContainers integration.","archived":false,"fork":false,"pushed_at":"2022-01-31T02:06:59.000Z","size":74,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T23:43:26.535Z","etag":null,"topics":["amazon","aws","aws-sdk-java-v2","docker","docker-compose","dynamodb","dynamodb-local","gradle","reactive","reactive-programming","spring-boot","spring-webflux","testcontainers"],"latest_commit_sha":null,"homepage":"","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/rbiedrawa.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-27T16:19:26.000Z","updated_at":"2024-02-11T08:59:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"2428f520-b023-41fa-a779-3c40d882fa8f","html_url":"https://github.com/rbiedrawa/spring-webflux-aws-dynamodb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rbiedrawa/spring-webflux-aws-dynamodb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-webflux-aws-dynamodb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-webflux-aws-dynamodb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-webflux-aws-dynamodb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-webflux-aws-dynamodb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rbiedrawa","download_url":"https://codeload.github.com/rbiedrawa/spring-webflux-aws-dynamodb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-webflux-aws-dynamodb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31677819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"last_error":"SSL_read: 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":["amazon","aws","aws-sdk-java-v2","docker","docker-compose","dynamodb","dynamodb-local","gradle","reactive","reactive-programming","spring-boot","spring-webflux","testcontainers"],"created_at":"2024-11-28T08:09:48.091Z","updated_at":"2026-04-11T11:02:20.517Z","avatar_url":"https://github.com/rbiedrawa.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Webflux CRUD application (Amazon DynamoDB)\n\nThis repository contains sample Aws DynamoDB CRUD application with Spring Webflux and TestContainers integration.\n\n## Features\n\n* Reactive API using Spring Webflux.\n* [AWS SDK for Java 2.x.](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html)\n* Integration tests for DynamoDB using Testcontainers.\n* Docker-compose file with [dynamoDB](https://hub.docker.com/r/amazon/dynamodb-local/), [dynamodb-admin](https://hub.docker.com/r/aaronshaf/dynamodb-admin) and [AWS cli](https://hub.docker.com/r/banst/awscli).\n\n## Getting Started\n\n### Prerequisites\n\n* Java 11\n* Docker\n\n### Usage\n\n* Build docker image.\n  ```shell\n  ./gradlew bootBuildImage\n  ```\n\n* Start docker-compose demo.\n  ```shell\n  docker-compose -f docker/docker-compose.yml -f docker/docker-compose.app.yml up -d\n  ```\n\n* List containers and check if all are `Up`.\n    ```shell\n    docker-compose -f docker/docker-compose.yml -f docker/docker-compose.app.yml ps \n\n    #       Name                   Command                State             Ports         \n    # -----------------------------------------------------------------------------------\n    # app              /cnb/process/web                 Up         0.0.0.0:8080-\u003e8080/tcp\n    # awscli           aws dynamodb create-table  ...   Exit 255                         \n    # dynamodb         java -jar DynamoDBLocal.ja ...   Up         0.0.0.0:8000-\u003e8000/tcp\n    # dynamodb-admin   node bin/dynamodb-admin.js       Up         0.0.0.0:8001-\u003e8001/tcp\n    ```\n\n* Verify if 'users' table was successfully created. Use either `curl -X GET --location \"http://localhost:8080/users\"` or\n  open your web browser and go to [dynamo dashboard page](http://localhost:8001/tables/users).\n\n\n* Test other CRUD endpoints using curl e.g.:\n  ```shell\n  # Create new user:\n  curl --header \"Content-Type: application/json\" \\                                      \n  --request POST \\\n  --data '{\"email\":\"curl_user@test.com\"}' \\\n  http://localhost:8080/users\n  ```\n\n* Stop docker-compose demo.\n  ```shell\n  docker-compose -f docker/docker-compose.yml -f docker/docker-compose.app.yml down -v\n  ```\n\n## References\n\n* [Getting Started with Java and DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Java.html)\n* [Testcontainers](https://www.testcontainers.org/)\n* [Installing, updating, and uninstalling the AWS CLI version 2 on macOS](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-mac.html)\n\n\n## Additional Links\n\n* [Working with Global Secondary Indexes: Java](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSIJavaDocumentAPI.html)\n* [Design a Database for a Mobile App](https://aws.amazon.com/getting-started/hands-on/design-a-database-for-a-mobile-app-with-dynamodb/)\n* [How to model one-to-many relationships in DynamoDB](https://www.alexdebrie.com/posts/dynamodb-one-to-many/)\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frbiedrawa%2Fspring-webflux-aws-dynamodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frbiedrawa%2Fspring-webflux-aws-dynamodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frbiedrawa%2Fspring-webflux-aws-dynamodb/lists"}