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

Reply via email to