Repository contains my results of tinkering with aws-java-sdk library and async-http-client to build thin layer on top of amazon sdk to get real non-blocking client
Main goals
- Investigate how hard is to creat non-blocking client for aws sdk (not hard, but requires some copypaste now due to private methods)
- Create working client for one of aws services - dynamodb
Right now this project does not have plans to cover other aws modules as according to this comment AWS team has plans to publish official non-blocking support. But as I started before, this announcement and they have not published anything yet, I don't want to throw away my progress in trash bin now :).
- aws-async-core - non-blocking analog of AmazonWebServiceClient, that is used internally by all aws services
- aws-async-dynamodb - non-blocking client for Amazon DynamoDB
- example - simple example app showing that non-blocking client works
I'm really hoping that it will not be required as AWS sdk team will release their own non-blocking client that will be feature rich and maintained.
In case it will not happen, roadmap could be:
- Support other aws-sdk modules by utilizing sdk client generator (yes, all clients are generated code, mine now is handwritten)
- Fix shortcuts in WebServiceClients - metrics, retries
- Non-blocking versions for high level parts of sdk, e.g. dynamodb mapper
Apache 2.0