Cortana Analytics Gallery - a scalable community site built on Azure DocumentDB

6ec9353d-92c9-4d35-a81c-2a8c72cb573a

Cortana Analytics Gallery - a scalable community site built on Azure DocumentDB

By Andrew Hoh Program Manager, Azure DocumentDB as written on azure.microsoft.com . Co-authored with Elena Apreutesei, Principal Software Engineer, Azure Machine Learning.
The Cortana Analytics Gallery is a community driven website used to discover, share, and learn about solutions built from the Cortana Analytics Suite. The Gallery hosts a wide range of solutions; everything from a Retail Forecasting experiment to the ever popular Face APIs used in the How old do I look? app. Machine Learning enthusiasts can share their own experiments using the Azure Machine Learning Studio, a private space focused on Machine Learning experimentation and model creation.
The Cortana Analytics Gallery follows a micro service architecture with single purpose components working together to deliver reliable and durable functionality. This post focuses on the Gallery Catalog API, which is used as the data master within the Gallery user experience.

Gallery Catalog API

Every Gallery entity has a JSON metadata document stored in Azure DocumentDB and all CRUD (create, read, update, and delete) operations are against DocumentDB. As a micro service, the Gallery Catalog API provides REST APIs and supports OData; both of which were built through the ASP.NET library WebApi. Generally, the Catalog API pushes the query filters provided through ODATA directly down to the DocumentDB LINQ provider as an ExpressionTree, where it gets executed at the database.
The Gallery Catalog service exposes GET / POST / PATCH / DELETE operations on standard WebAPI routes, such as the generic route /entities/{entityId} and the specialized routes /experiments/{entityId}, /collections/{entityId}, /tutorials/{entityId}, etc.
The JSON objects in the REST API payload are simply the serialized form of the Catalog entity data contracts, derived from a common class EntityBase which provides the flexibility to store other entities.

Source: https://azure.microsoft.com/en-us/blog/cortana-analytics-gallery-a-scalable-community-site-built-on-azure-documentdb/