Azure Cosmos DB is Microsoft’s scalable, fully managed, serverless NoSQL database as a service offering. The service provides a lot of really great features for hosting NoSQL databases within the Azure cloud. There can often be limited transparency as to what features Microsoft is working on adding to Cosmos DB, as well as other Azure services. However, Microsoft does have a community feedback site where everyone can suggest feature Ideas and vote on their most requested. Then Microsoft will actually mark some of them as “Planned” when they are working on them for a future feature release at some point.
Let’s take a look at some of the most highly voted Ideas for Azure Cosmos DB that Microsoft has set the status to “Planned”, so we can maybe gain some insights into what features are coming eventually for Azure Cosmos DB as of July 2022.
10) Delete notifications for change feed
Feature Request (requested 2 years ago) Delete notifications for Cosmosdb change feed.Problem: When deleting an item in Cosmosdb it is not conveyed to the change feed.Proposed solution: Implement a delete notification in the same manner as for upserts. If the deleted item could be conveyed it is good but the id is better than nothing.If it helps I wrote a tad more here: https://www.selfelected.com/cosmosdb-change-feed-and-deleted-items/
Microsoft Response: Update: No ETA on this. Previous update was incorrect. Work has started. Will update when we have an ETA.Thanks.Work on this item has started. Approximate ETA for Spring 2020. Will update as this progresses.Thanks.
9) Compress stored data
Feature Request (requested 5 years ago) Please compress data in place for more efficient use of storage.For example, I recently exported the entire dataset from a collection and gathered the following stats:DocumentDB Data Storage: 627 MiB (including hidden fields and other overhead I assume, but not Indexes) Exported JSON: 461.72 MiB Compressed JSON: 47MiBSo potentially a 10x saving in data storage size.
Microsoft Response: We are currently working on a new way to encode data that will both improve query scan performance and decrease storage size.Will update once this is available.Thank you.
8) Add DateTimeOffset support
Feature Request (requested 5 years ago) The DocumentDb engine should be able to recognize and properly order DateTimeOffset serialized fields.
Microsoft Response: Thanks for feedback. We are planning on adding DateTimeOffset in addition to the new functions we’ve already released.Thanks.
7) Execute a procedure when TTL expires
Feature Request: (requested 6 years ago) I would like to execute a procedure when TTL expires. For example, when TTL expires I would like to also delete some related records from Azure table storage.
Microsoft Response: When we support change feed deletes, we will also indicate whether the delete is due to TTL. This will allow developers to write custom code that is executed each time data is deleted (for example, after they’ve processed that change).
6) Support filters (queries) on the Change Feed
Feature Request: (requested 5 years ago) For some advanced scenarios and for performance reasons, support filters (queries) on the Change Feed
Microsoft Response: This feature is now planned for this current semester ending in June.Will update as work progresses.Thank you.
5) Support documents up to 16mb
Feature Request: (requested 5 years ago) It’s not possible to migrate documents greater than 2mb, please consider increase document size up to 16mb (document)
Microsoft Response: Thank you for the feedback! We have begun development for supporting larger documents sizes.We will be hosting a preview in the coming months and would love to get your support in testing and feedback.Please sign up here if you are interested in participating in the upcoming preview: https://aka.ms/cosmosdb-big-item-size-preview
4) Support ORDER BY on the ST_DISTANCE spatial function
Feature Request: (requested 6 years ago) Ordering results by the ST_DISTANCE spatial function is currently not supported.
Microsoft Response: This item was incorrectly marked as started. Actual work on this item has been deferred but is still planned.Will update when this work is started.Thank you.
3) Add the ability to delete ALL data in a partition
Feature Request: (requested 5 years ago) In a partitioned collection, it would be useful to have the option delete all data with a given partitionId.
Microsoft Response: (6 months ago) We are looking to get some feedback on this feature and would love for you to try out a preview. Sign-up: https://aka.ms/cosmosPkDeleteSignup Thanks.
2) Support Gremlin Bytecode to enable the fluent API of Gremlin.NET
Feature Request: (requested 4 years ago) Azure Cosmos DB Graph API doesn’t support Gremlin Bytecode. Therefor it is not possible to use the fluent traversal API of Gremlin.NET.Within the Azure Cosmos DB Graph .NET API (https://docs.microsoft.com/en-us/azure/cosmos-db/graph-sdk-dotnet) it is recommended to use Gremlin.NET. So it would be really nice if all features of Gremlin.NET would be supported.See also the idea of a better type-safe APIs fro Gremlin (https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/19340761-better-type-safe-apis-for-gremlin) within the Graph API feedback.
Microsoft Response: Hello. Our apologies for the delay in an update here.We are actively working on this and have a new ETA of Q2 2021.Thanks for your patience.
1) Add DocumentDB Emulator support for Mac OS X and *nix
Feature Request: (requested 5 years ago) The DocumentDB Emulator currently only supports Windows 10.It would be great if support for Mac OS X could be added or documentation to run it on other platforms.
Microsoft Response: (updated 6 months ago) We are going to move this back to Planned until we release support for all database API’s. Will then mark as completed. Thank you.
Microsoft has marked all these requested Cosmos DB features as “Planned” on the community site, so we should expect them to be released “soon”. Unless priorities change, as this isn’t a guarantee we’ll see these features released. Either way, the Community site is an awesome way that Microsoft Azure product teams get feedback from the community on what features they want added to the Azure services.