chetanmeh opened a new pull request #3562: ArtifactStore implementation for CosmosDB URL: https://github.com/apache/incubator-openwhisk/pull/3562 This PR provides a `CosmosDBArtifactStore` implementation to enable using CosmosDB for storing subjects, whisks and activation in [Azure CosmosDB][1] This is currently work in progress and opening this early so as to get feedback on design progress ## Description Currently OpenWhisk supports CouchDB for storing various entities like actions, rules, subjects, activations etc. This PR provides a [CosmosDB][1] based implementation for ArtifactStore SPI ### Usage of CosmosDB Java SDK CosmosDB supports various modes to connect to it. For our usage we have two options 1. [REST API][2] 2. [Async Java SDK][3] 3. [Sync Java SDK][6] Compared to CouchDB performing queries against CosmosDB requires client side computation which involves sending queries to each partition and then collect and merge the result set. The Async Java SDK takes care of all these interactions and provides a simplified reactive api based on [RxJava][5] Given the complexity involved in performing various operations against CosmosDB this PR uses the Java SDK to simplify and speed up the implementation ### Design Considerations #### Partitioning Strategy TBD #### Query Execution TBD #### Attachment Storage TBD #### Testing Approach TBD ## Related issue and scope ## My changes affect the following components - [x] Data stores (e.g., CouchDB) - [X] Tests - [x] Deployment - [X] Documentation ## Types of changes - [x] Enhancement or new feature (adds new functionality). ## Checklist: - [x] I signed an [Apache CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md). - [x] I reviewed the [style guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness) and followed the recommendations (Travis CI will check :). - [x] I added tests to cover my changes. - [ ] My changes require further changes to the documentation. - [ ] I updated the documentation where necessary. [1]: https://docs.microsoft.com/en-us/azure/cosmos-db/ [2]: https://docs.microsoft.com/en-us/rest/api/documentdb/restful-interactions-with-documentdb-resources [3]: https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-sdk-async-java [4]: https://github.com/Azure/azure-cosmosdb-java [5]: https://github.com/ReactiveX/RxJava [6]: https://github.com/Azure/azure-documentdb-java
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services