CINXE.COM

Azure Cosmos DB Blog

<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" > <channel> <title>Azure Cosmos DB Blog</title> <atom:link href="https://devblogs.microsoft.com/cosmosdb/feed/" rel="self" type="application/rss+xml" /> <link>https://devblogs.microsoft.com/cosmosdb/</link> <description>The latest news, updates and technical insights from the Azure Cosmos DB team</description> <lastBuildDate>Wed, 12 Feb 2025 15:55:48 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <image> <url>https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/10/Microsoft-favicon-48x48.jpg</url> <title>Azure Cosmos DB Blog</title> <link>https://devblogs.microsoft.com/cosmosdb/</link> <width>32</width> <height>32</height> </image> <item> <title>DocumentDB is Gaining Momentum in the Open-Source Database World</title> <link>https://devblogs.microsoft.com/cosmosdb/documentdb-is-gaining-momentum-in-the-open-source-database-world/</link> <comments>https://devblogs.microsoft.com/cosmosdb/documentdb-is-gaining-momentum-in-the-open-source-database-world/#respond</comments> <dc:creator><![CDATA[Patty Chow]]></dc:creator> <pubDate>Wed, 12 Feb 2025 15:55:48 +0000</pubDate> <category><![CDATA[Azure Cosmos DB for MongoDB]]></category> <category><![CDATA[Azure Cosmos DB for NoSQL]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9433</guid> <description><![CDATA[<p>In the short amount of time since we unveiled DocumentDB, our open-source document database platform powering the vCore based Azure Cosmos DB for MongoDB, and the feedback has been nothing short of phenomenal. In this short time, we&#8217;ve received a lot of attention from tech media and community members alike. Rapid Community Adoption Developers and [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/documentdb-is-gaining-momentum-in-the-open-source-database-world/">DocumentDB is Gaining Momentum in the Open-Source Database World</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p>In the short amount of time since we unveiled <a href="http://aka.ms/documentdb_blog" target="_blank" rel="noopener">DocumentDB</a>, our open-source document database platform powering the vCore based Azure Cosmos DB for MongoDB, and the feedback has been nothing short of phenomenal. In this short time, we&#8217;ve received a lot of attention from tech media and community members alike.</p> <h2><span style="font-size: 24pt;">Rapid Community Adoption</span></h2> <p>Developers and database enthusiasts have embraced DocumentDB with overwhelming enthusiasm, rapidly driving traction among both users and contributors. In just under a week, our project earned 1000 GitHub stars, nearly 50 forks, and multiple pull requests and issues—clear evidence of strong interest.</p> <p>PostgreSQL enthusiasts are actively engaging with DocumentDB—many are already exploring innovative ways to incorporate it into their projects and contribute to its development. The open-source community’s early adoption highlights DocumentDB’s potential to bridge the gap between relational and document database paradigms.</p> <p>Developers and community members have expressed strong interest in shaping the project’s vision and roadmap, as well as influencing how DocumentDB enhances the interoperability of NoSQL data stores. We have already received suggestions to enable PG 17 support and to clarify why we chose RUM over a B-Tree for indexing, among other recommendations.</p> <h2><span style="font-size: 24pt;">Media Recognition</span></h2> <p>DocumentDB has quickly caught the attention of major tech publications. We are featured in:</p> <ul> <li><a href="https://www.infoworld.com/article/3812630/microsofts-new-documentdb-rethinks-nosql-on-postgresql.html" target="_blank" rel="noopener">InfoWorld</a></li> <li><a href="https://www.theregister.com/2025/01/27/microsoft_builds_open_source_document/" target="_blank" rel="noopener">The Register</a></li> <li><a href="https://news.ycombinator.com/item?id=42807210" target="_blank" rel="noopener">HackerNews</a></li> <li><a href="https://www.phoronix.com/news/Microsoft-OpenSource-DocumentDB" target="_blank" rel="noopener">Phoronix</a></li> <li><a href="https://news.itsfoss.com/microsoft-documentdb-opensource/" target="_blank" rel="noopener">It’s FOSS</a></li> </ul> <p>as well as in numerous Reddit communities. This interest across the tech space has played an important role in spreading awareness about DocumentDB’s presence in NoSQL.</p> <h2><span style="font-size: 24pt;">Community Engagement</span></h2> <p>Our first community sync on <a href="https://aka.ms/documentdb_discord" target="_blank" rel="noopener">Discord</a> was a great success, allowing us to connect directly with developers and users. To continue creating an open dialogue between our team and the community, we’re excited to announce a series of upcoming events:</p> <p><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/Add-a-subheading.png"><img fetchpriority="high" decoding="async" class="aligncenter wp-image-9479 size-large" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/Add-a-subheading-1024x579.png" alt="Upcoming DocumentDB event schedule" width="1024" height="579" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/Add-a-subheading-1024x579.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/Add-a-subheading-300x170.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/Add-a-subheading-768x434.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/Add-a-subheading.png 1472w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p> <h3><span style="font-size: 18pt;"><strong>DocumentDB: First Weeks’ Insights (February 24, 2025)</strong></span></h3> <p>Join us as we discuss what we&#8217;ve seen and learned in the first few weeks since DocumentDB&#8217;s release. A few topics that we will jump into during our discussion are:</p> <ul> <li>Common themes that have emerged in the issues that were created in the repository</li> <li>Questions and comments from the community on the value that the project brings in the form of a broadly usable Postgres extension</li> <li>Requests for integration with other open-source developer tools such as Aspire.net and Visual Studio Code</li> </ul> <p>Register for the event using <a href="https://discord.gg/microsoft-open-source?event=1338554919208222830" target="_blank" rel="noopener">this link</a>.</p> <h3><span style="font-size: 18pt;"><strong>FerretDB Integration Deep Dive (March 10, 2025)</strong></span></h3> <p>Learn how FerretDB built FerretDB 2.0 with DocumentDB as the backing engine. Join Alexey Palazhchenko from FerretDB along with Siddhesh Vethe, Vinod Sridharan and Santiago Madero from the DocumentDB team as the group discusses Ferret’s journey with DocumentDB.</p> <p>Register for the event using <a href="https://discord.gg/microsoft-open-source?event=1338555346448551966" target="_blank" rel="noopener">this link</a>.</p> <h3><span style="font-size: 18pt;"><strong>PostgreSQL as a Document Database Platform (March 24, 2025)</strong></span></h3> <p>We&#8217;ll explore our vision for PostgreSQL as a foundation for document databases, discussing our long-term goals for standardization and the interoperability challenges we&#8217;ve observed over the years. We&#8217;ll also share use cases from the community.</p> <p>Register for the event using <a href="https://discord.gg/microsoft-open-source?event=1338558423616327811" target="_blank" rel="noopener">this link</a>.</p> <h3><span style="font-size: 18pt;"><strong>Tweaking PostgreSQL for DocumentDB (April 7, 2025)</strong></span></h3> <p>The Engineering team that created the project will dive into the technical details of how and why they tweaked and adjusted PostgreSQL settings specifically for DocumentDB. They will discuss their initial assumptions, course corrections they made, lessons learned along the way, and tradeoffs they considered when deciding on these settings.</p> <p>Register for the event using <a href="https://discord.gg/microsoft-open-source?event=1338558727489585172" target="_blank" rel="noopener">this link</a>.</p> <h3><span style="font-size: 18pt;"><strong>DocumentDB Turns Three (Months)! (April 23, 2025)</strong></span></h3> <p>As we reach the first quarter milestone since the project&#8217;s release, join us for a fireside chat. We will discuss our progress, share our plans, and outline the direction we&#8217;re heading as we look forward.</p> <p>Register for the event using <a href="https://discord.gg/microsoft-open-source?event=1338559054154436608" target="_blank" rel="noopener">this link</a>.</p> <h2><span style="font-size: 24pt;">Looking Ahead</span></h2> <p>As we look into the future of DocumentDB, here’s some things to look forward to, all within our <a href="https://aka.ms/documentdb_discord" target="_blank" rel="noopener">Discord channel</a>:</p> <ol> <li><strong>Roadmap Discussions:</strong> We&#8217;re planning our first roadmap discussion where you can help shape the vision for the early wave of feature enhancements. This is your chance to influence the project&#8217;s direction and prioritize features that matter most to you.</li> <li><strong>Architecture Overview Series:</strong> Deep dive into specific aspects of DocumentDB&#8217;s architecture. These sessions will provide insights into our design decisions and implementation details.</li> <li><strong>Office Hours:</strong> To foster closer community engagement, we&#8217;re planning to introduce regular online office hours. This will provide an opportunity for developers to interact directly with the DocumentDB team, ask questions, and receive guidance on their specific use cases.</li> <li><strong>Hands-on Workshops:</strong> We&#8217;re developing a series of practical, hands-on workshops to help developers get direct experience with DocumentDB. Through these workshops, our goal is to minimize your time to onboard to DocumentDB.</li> <li><strong>Tutorial Series:</strong> We&#8217;re working on a comprehensive tutorial series that will guide users through deep dives into specific areas of the project. These tutorials will showcase best practices, common patterns and API deep dives for getting the most out of DocumentDB.</li> <li><strong>Case Study Deep Dives:</strong> To demonstrate real-world applications of DocumentDB, we&#8217;re planning to release in-depth case studies. These will provide valuable insights into how organizations are implementing DocumentDB, the challenges they faced, and the solutions they developed.</li> </ol> <p>Stay tuned for more updates, and don&#8217;t forget to check out our <a href="https://aka.ms/documentdb_github" target="_blank" rel="noopener">GitHub repository</a> as well as the #documentdb channel in the <a href="https://aka.ms/documentdb_discord" target="_blank" rel="noopener">Microsoft OSS Discord server</a>. The future of DocumentDB is bright, and we&#8217;re thrilled to have you on this journey with us!</p> <p><span style="font-size: 18pt;"><strong>About DocumentDB</strong></span></p> <p>DocumentDB is an open-source document database platform and the engine powering the vCore-based Azure Cosmos DB for MongoDB. With its seamless integration of BSON data types and operations into PostgreSQL, DocumentDB provides developers with high performance and scalability for applications requiring efficient handling of document-based data. If you&#8217;re looking for the best of both NoSQL and relational database worlds, <a href="https://aka.ms/documentdb_github" target="_blank" rel="noopener">get started with DocumentDB for free here.</a></p> <p><span style="font-size: 18pt;"><strong>About Azure Cosmos DB</strong></span></p> <p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</p> <p><a href="https://cosmos.azure.com/try/" target="_blank" rel="noopener">Try Azure Cosmos DB for free here.</a> To stay in the loop on Azure Cosmos DB updates, follow us on <a href="https://twitter.com/AzureCosmosDB" target="_blank" rel="noopener">X</a>, <a href="https://aka.ms/AzureCosmosDBYouTube" target="_blank" rel="noopener">YouTube</a>, and <a href="https://www.linkedin.com/company/azure-cosmos-db/" target="_blank" rel="noopener">LinkedIn</a>.</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/documentdb-is-gaining-momentum-in-the-open-source-database-world/">DocumentDB is Gaining Momentum in the Open-Source Database World</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/documentdb-is-gaining-momentum-in-the-open-source-database-world/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item> <title>A Powerful, Open-Source MongoDB GUI for Everyone</title> <link>https://devblogs.microsoft.com/cosmosdb/a-powerful-open-source-mongodb-gui-for-everyone/</link> <comments>https://devblogs.microsoft.com/cosmosdb/a-powerful-open-source-mongodb-gui-for-everyone/#comments</comments> <dc:creator><![CDATA[Tomasz Naumowicz]]></dc:creator> <pubDate>Tue, 11 Feb 2025 16:14:35 +0000</pubDate> <category><![CDATA[Azure Cosmos DB for NoSQL]]></category> <category><![CDATA[Azure Cosmos DB API for MongoDB]]></category> <category><![CDATA[mongodb]]></category> <category><![CDATA[vCore]]></category> <category><![CDATA[Visual Studio Code]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9442</guid> <description><![CDATA[<p>Introduction Azure Cosmos DB for MongoDB provides robust support through its Request Units (RU) model and vCore-based architecture, enabling flexible and scalable options for various workloads. We are now on a mission to deliver the ultimate developer experience. To achieve this, we have integrated Azure Cosmos DB for MongoDB support into the Azure Databases VS [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/a-powerful-open-source-mongodb-gui-for-everyone/">A Powerful, Open-Source MongoDB GUI for Everyone</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<h2>Introduction</h2> <p>Azure Cosmos DB for MongoDB provides robust support through its Request Units (RU) model and vCore-based architecture, enabling flexible and scalable options for various workloads. <strong>We are now on a mission to deliver the ultimate developer experience.</strong> To achieve this, we have integrated Azure Cosmos DB for MongoDB support into the Azure Databases VS Code Extension.</p> <p>The free Azure Databases VS Code Extension, available on the <a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-cosmosdb" target="_blank" rel="noopener">VS Code Marketplace</a>, provides a reliable and intuitive MongoDB GUI for developers, database administrators, and teams working with MongoDB &#8211; on Azure and beyond.</p> <h4>MongoDB Support Comes to Azure Databases VS Code Extension</h4> <p><figure id="attachment_9531" aria-labelledby="figcaption_attachment_9531" class="wp-caption aligncenter" ><img decoding="async" class="wp-image-9531 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-mongodb-collection-overview.png" alt="A screenshot of Azure Databases VS Code Extension showing a collection view" width="2256" height="1432" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-mongodb-collection-overview.png 2256w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-mongodb-collection-overview-300x190.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-mongodb-collection-overview-1024x650.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-mongodb-collection-overview-768x487.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-mongodb-collection-overview-1536x975.png 1536w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-mongodb-collection-overview-2048x1300.png 2048w" sizes="(max-width: 2256px) 100vw, 2256px" /><figcaption id="figcaption_attachment_9531" class="wp-caption-text">Azure Databases VS Code Extension: The MongoDB Collection View</figcaption></figure></p> <p data-pm-slice="1 1 []">We have worked hard to ensure that the <strong>Azure Databases VS Code Extension</strong> meets your needs. Our goal is to deliver a <strong>first-class MongoDB experience</strong> directly within VS Code. We focused on:</p> <ul data-spread="false"> <li><strong>Integration with Azure Cosmos DB for MongoDB</strong>: You can connect to and manage Azure Cosmos DB for MongoDB (RU and vCore) directly from VS Code. Perform operations like browsing, querying, and modifying data with ease.</li> <li><strong>Universal MongoDB Connectivity</strong>: You can connect to any MongoDB instance, whether it&#8217;s hosted on Azure, another cloud provider, or an on-premises server, ensuring full compatibility.</li> <li><strong>Flexible Collection Viewer</strong>: You can navigate and analyze collections using <strong>Table, Tree, and JSON views</strong>. Built-in pagination controls allow you to manage large datasets effortlessly.</li> <li><strong>Document Management</strong>: You can view, edit, and delete individual documents directly within the extension, making database modifications quick and efficient without requiring external tools.</li> </ul> <p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Azure Databases VS Code Extension unifies MongoDB workflows by offering a user-friendly and feature-rich MongoDB GUI</strong></p> <h2>Use It with Any MongoDB Cluster</h2> <p>The Azure Databases VS Code Extension works with any MongoDB deployment, whether your database is on Azure, in another cloud environment, or even on a local machine.</p> <p>If you are an Azure user, browse your subscription in VS Code to select your Azure Cosmos DB for NoSQL instance &#8211; available with either the Request Units (RU) model or the vCore-based architecture &#8211; for a seamless connection.</p> <p>For any other MongoDB environment, simply enter your complete <strong>connection string</strong> in the <code><strong>MongoDB Cluster Accounts</strong></code> workspace area.</p> <h2>Truly Open Source</h2> <p>We believe in open development and collaboration. Our entire development process is <strong><a href="https://github.com/microsoft/vscode-cosmosdb" target="_blank" rel="noopener">public on GitHub</a> &#8211; </strong>including <a href="https://github.com/microsoft/vscode-cosmosdb/discussions" target="_blank" rel="noopener">discussions</a>, contributions, and improvements.</p> <p><strong>Follow Our Public Roadmap:</strong></p> <ul> <li><a href="https://github.com/microsoft/vscode-cosmosdb/projects" target="_blank" rel="noopener"><strong>Planned features</strong></a> <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li> <li><a href="https://github.com/microsoft/vscode-cosmosdb/projects" target="_blank" rel="noopener"><strong>Active development</strong></a></li> <li><a href="https://github.com/microsoft/vscode-cosmosdb/issues" target="_blank" rel="noopener"><strong>Challenges and known issues</strong></a></li> </ul> <p>All <a href="https://github.com/microsoft/vscode-cosmosdb/pulls" target="_blank" rel="noopener"><strong>Pull Requests (PRs) are reviewed publicly</strong></a>, so you can follow along as we develop, debug, and enhance the extension.</p> <h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f393.png" alt="🎓" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How To Get Started (Tutorial)</h2> <p>In this tutorial, we’ll guide you through installing the <strong>Azure Databases VS Code Extension</strong>, setting it up, and connecting to a MongoDB database. Once set up, we’ll import sample data and explore the extension’s data exploration features.</p> <p>Getting started requires installing VS Code, adding the Azure Databases extension, and setting up a MongoDB-compatible database. Follow these steps to prepare your environment.</p> <h3><strong>1. Install VS Code</strong></h3> <ul> <li>Download and install <a href="https://code.visualstudio.com/" target="_blank" rel="noopener">Visual Studio Code</a>.</li> <li>Ensure you have the latest version for the best compatibility.</li> </ul> <h3><strong>2. Install the Azure Databases VS Code Extension</strong></h3> <ul> <li>Open <strong>VS Code</strong>.</li> <li>Navigate to the <strong>Extensions</strong> view by selecting <strong>View &gt; Extensions</strong> or using the shortcut <code><strong>Ctrl + Shift + X</strong></code> on Windows and <code><strong>Command + Shift + X</strong></code> on macOS.</li> <li>Search for <strong>Azure Databases</strong> in the Marketplace and select it from the list.</li> <li>Click <strong>Install</strong> to add the extension.</li> </ul> <h3><strong>3. Prepare Your MongoDB Database</strong></h3> <table style="border-collapse: collapse; width: 100%;"> <thead> <tr> <td style="width: 50%;"><strong>Using Azure Services</strong></td> <td style="width: 50%;"><strong>Using Third-Party Services</strong></td> </tr> </thead> <tbody> <tr> <td style="width: 50%; vertical-align: top;"> <ol> <li>Navigate to the <a href="https://ms.portal.azure.com/#browse/Microsoft.DocumentDB%2FmongoClusters" target="_blank" rel="noopener"><strong>Azure Cosmos DB for MongoDB (vCore)</strong></a> section in the <strong>Azure Portal</strong>.</li> <li>Create a new <strong>Azure Cosmos DB for MongoDB (vCore)</strong> cluster.</li> <li>When setting up the cluster, set an administrator password and keep it available for later use.</li> </ol> </td> <td style="width: 50%; vertical-align: top;"> <ol> <li>Prepare the <strong>connection string</strong> for your MongoDB deployment and keep it available for later use. <ul> <li>The connection string must start with <code><strong>mongodb://</strong></code> or <code><strong>mongodb+srv://</strong></code>.</li> </ul> </li> </ol> </td> </tr> </tbody> </table> <p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You have now installed VS Code, set up the Azure Databases VS Code Extension, and prepared a MongoDB-compatible database for connection.</strong></p> <h3><strong>4. Connect to Your Database</strong></h3> <p>With the setup complete, the next step is connecting to your MongoDB database using either Azure Cosmos DB or a third-party MongoDB deployment.</p> <table style="border-collapse: collapse; width: 100%; height: 344px;"> <thead> <tr style="height: 24px;"> <td style="width: 50%; height: 24px;"><strong>Using Azure Services</strong></td> <td style="width: 50%; height: 24px;"><strong>Using Third-Party Services</strong></td> </tr> </thead> <tbody> <tr style="height: 320px;"> <td style="width: 50%; vertical-align: top; height: 320px;"> <ol> <li>Open the <strong>Azure Databases Extension</strong> in <strong>VS Code</strong>. <ul> <li>Locate and select the <strong>Azure</strong> icon in the primary VS Code sidebar on the left-hand side.</li> </ul> </li> <li>Navigate to your <strong>Azure Cosmos DB for MongoDB (vCore)</strong> cluster: <ul> <li>Locate the <strong>Resources</strong> area.</li> <li>Expand the node containing your <strong>Azure Subscription name</strong>.</li> <li>Expand the <strong>Azure Cosmos DB for MongoDB (vCore)</strong> node.</li> </ul> </li> <li>Connect to your MongoDB cluster: <ul> <li>Find your cluster in the list and expand it.</li> <li>Enter the <strong>administrator password</strong> when prompted.</li> </ul> </li> </ol> </td> <td style="width: 50%; vertical-align: top; height: 320px;"> <ol> <li>Open the <strong>Azure Databases Extension</strong> in <strong>VS Code</strong>. <ul> <li>Locate and select the <strong>Azure</strong> icon in the primary VS Code sidebar on the left-hand side.</li> </ul> </li> <li>Add a new connection to your MongoDB deployment: <ul> <li>In the <strong>Workspace</strong> area, locate and expand the <strong>MongoDB Cluster Connections</strong> node.</li> <li>Select <strong>New Connection</strong> in the <strong>MongoDB Cluster Connections</strong> tree.</li> <li>Paste your <strong>MongoDB connection string</strong> and confirm the <strong>username and password</strong>.</li> <li>A new entry will be added and listed under <strong>MongoDB Cluster Connections</strong>.</li> </ul> </li> <li>Connect to your MongoDB cluster: <ul> <li>Locate and expand your newly created <strong>MongoDB cluster connection</strong>.</li> </ul> </li> </ol> </td> </tr> </tbody> </table> <p><img decoding="async" class="aligncenter wp-image-9499 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-empty-server.webp" alt="A screenshot showing the Azure Databases VS Code Extension connected to an empty MongoDB server." width="1521" height="675" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-empty-server.webp 1521w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-empty-server-300x133.webp 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-empty-server-1024x454.webp 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-empty-server-768x341.webp 768w" sizes="(max-width: 1521px) 100vw, 1521px" /></p> <p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Your MongoDB database is now connected, and you can begin managing and exploring your data.</strong></p> <h3><strong>5. Create a New Database and a Collection</strong></h3> <p>Once connected, create a new database and collection to start managing data.</p> <ol> <li>Right-click your <strong>MongoDB cluster</strong> and select <strong>Create Database…</strong> from the context menu.</li> <li>Enter <code><strong>MyDatabase</strong></code> when prompted for the database name.</li> <li>Expand the newly created <strong>MyDatabase</strong> node.</li> <li>Select <strong>Create Collection</strong>.</li> <li>Enter <code><strong>MyCollection</strong></code> when prompted for the collection name.</li> </ol> <p><img decoding="async" class="aligncenter wp-image-9502 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-mycollection-tree.png" alt="A screenshot of Azure Databases VS Code Extension showing a resources tree" width="500" height="161" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-mycollection-tree.png 500w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-mycollection-tree-300x97.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></p> <p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You have successfully created a new database and collection.</strong></p> <h3><strong>6. Import Sample Data</strong></h3> <p>Populate your collection with sample data to explore the extension’s features. <a href="https://gist.github.com/tnaum-ms/fe56a0dcff69f10793d2875ad9d7498a" target="_blank" rel="noopener"><strong>Here</strong></a> is a download link for a sample file containing a description of 500 restaurants and their reviews. Download the file and have it available for the next steps.</p> <ol> <li>Expand the newly created <strong>MyCollection</strong> node.</li> <li>Click <strong>Documents</strong> to open the <strong>Collection View</strong>.</li> <li>In the <strong>Collection View</strong>, click the <strong>Import</strong> button in the upper right corner.</li> <li>Select <strong>Import from JSON…</strong>.</li> <li>Navigate to the downloaded file <a href="https://gist.github.com/tnaum-ms/fe56a0dcff69f10793d2875ad9d7498a" target="_blank" rel="noopener"><code><strong>restaurants.json</strong></code></a>.</li> <li>A confirmation message will indicate that <strong>500 documents</strong> were imported.</li> <li>Click <strong>Refresh</strong> to see them in the <strong>Collection View</strong>.</li> </ol> <p><img decoding="async" class="aligncenter wp-image-9504 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-post-import.png" alt="A screenshot of Azure Databases VS Code Extension showing a collection view" width="2256" height="1432" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-post-import.png 2256w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-post-import-300x190.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-post-import-1024x650.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-post-import-768x487.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-post-import-1536x975.png 1536w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-post-import-2048x1300.png 2048w" sizes="(max-width: 2256px) 100vw, 2256px" /></p> <p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Your collection now contains sample data, ready for exploration.</strong></p> <h3><strong>7. Explore the Data Exploration Features</strong></h3> <p>Use the <strong>JSON</strong>, <strong>Tree</strong>, and <strong>Table</strong> <strong>Views</strong> to analyze your data in different formats.</p> <p><img decoding="async" class="aligncenter wp-image-9506 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-change-views.png" alt="A screenshot of Azure Databases VS Code Extension" width="1545" height="683" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-change-views.png 1545w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-change-views-300x133.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-change-views-1024x453.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-change-views-768x340.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-change-views-1536x679.png 1536w" sizes="(max-width: 1545px) 100vw, 1545px" /></p> <ul> <li><strong>JSON View</strong> <ul> <li>The JSON View displays documents in raw format, making it useful for quick inspection of specific properties.</li> <li>It includes syntax highlighting to enhance readability and help distinguish key elements quickly.</li> <li>Get familiar with the structure of imported documents and locate the <code><strong>additionalInfo</strong></code> property containing an embedded object.</li> </ul> </li> <li><strong>Tree View</strong> <ul> <li>The Tree View organizes documents hierarchically. Expand and collapse properties to focus on relevant details and better understand individual document structures.</li> <li>Expand the <code><strong>additionalInfo</strong></code> property to explore embedded objects. Observe three columns: <strong>property name, value, and data type</strong>.</li> </ul> </li> <li><strong>Table View</strong> <ul> <li>The Table View presents multiple documents at once, grouping values from different documents into columns. This helps detect patterns, spot inconsistencies, and identify missing values.</li> <li>Column names are inferred automatically from document properties and used to group values. Each cell displays the actual data type of its value for clarity.</li> <li>Double-click <code><strong>additionalInfo</strong></code> in the first document to inspect all embedded objects.</li> </ul> </li> </ul> <p>Navigate through the <strong>paging controls</strong> to explore beyond the first <strong>10 documents</strong>.</p> <p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You have explored different ways to view and analyze your data.</strong></p> <h3><strong>8. Run Queries and Manage Your Database</strong></h3> <p>Run queries to filter and retrieve data efficiently.</p> <ol> <li>Navigate to the <strong>query area</strong>. <ul> <li><img decoding="async" class="aligncenter wp-image-9524 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-query-area.png" alt="Screenshot of the Azure Databases VS Code Extension" width="1545" height="617" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-query-area.png 1545w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-query-area-300x120.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-query-area-1024x409.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-query-area-768x307.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-query-area-1536x613.png 1536w" sizes="(max-width: 1545px) 100vw, 1545px" /></li> </ul> </li> <li>Run a query to find all vegetarian restaurants: <strong><code>{ "cuisine": "Vegetarian" }</code></strong></li> <li>Use auto-completion for complex queries: <ul> <li>Start typing <strong><code>{ add</code></strong> and wait for suggestions. <ul> <li><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-add.png"> <img decoding="async" class="aligncenter wp-image-9508 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-add.png" alt="Screenshot of Azure Databases VS Code Extension" width="1545" height="624" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-add.png 1545w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-add-300x121.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-add-1024x414.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-add-768x310.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-add-1536x620.png 1536w" sizes="(max-width: 1545px) 100vw, 1545px" /> </a></li> </ul> </li> <li>Select <code><strong>additionalInfo.hasOutdoorSeating</strong></code>, type <strong><code>:</code></strong> and select <code><strong>true</strong></code>. <ul> <li><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-true.png"> <img decoding="async" class="aligncenter wp-image-9509 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-true.png" alt="Screenshot of Azure Databases VS Code Extension" width="1544" height="561" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-true.png 1544w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-true-300x109.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-true-1024x372.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-true-768x279.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/screenshot-azure-databases-collection-view-autocomplete-true-1536x558.png 1536w" sizes="(max-width: 1544px) 100vw, 1544px" /> </a></li> <li>Azure Databases inferred that the most common data type for this property is a Boolean, which is why it is suggested here.</li> </ul> </li> </ul> </li> <li>Explore more complex queries:</li> </ol> <ul> <li style="list-style-type: none;"> <ul> <li>Start typing in <code><strong>{ "rating":</strong></code> to see <strong>auto-complete suggestions</strong>.</li> <li>To find restaurants rated above 4 stars, choose the suggestion with the <code>$gt</code> operator: <ul> <li><code><strong>{ "rating": { "$gt": 4 } }</strong></code></li> </ul> </li> </ul> </li> </ul> <p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You have successfully run queries to explore your data.</strong></p> <h3><strong>9. There Is More</strong></h3> <p>The tutorial above introduced the core functionalities of the Azure Databases VS Code Extension, covering setup, data exploration, and queries. However, there’s much more to discover. The extension includes additional tools that enhance productivity and improve database management.</p> <p><strong>Collection View Enhancements</strong></p> <ul> <li>Adjust page size to control how many documents are displayed at once.</li> <li>Navigate embedded objects more effectively in Table View.</li> <li>Use the Export feature to save data for external use.</li> <li>Add or edit documents directly within the extension.</li> </ul> <p><strong>Advanced Tree View Features</strong></p> <ul> <li>Use the context menu to add or remove databases and collections.</li> <li>Start MongoDB Shell to run advanced queries.</li> <li>Open a local scrapbook to experiment with commands and keep track of useful queries.</li> </ul> <p>These features provide more control and flexibility, making database management even more efficient. Explore these tools to refine your workflow and maximize your use of the extension.</p> <p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Congratulations! </strong>You’ve completed your first steps with the Azure Databases VS Code Extension and are now ready to manage MongoDB databases efficiently. Explore more features and best practices to enhance your experience!</p> <h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Join the Discussion!</h2> <p>Join our <a href="https://github.com/microsoft/vscode-cosmosdb/discussions" target="_blank" rel="noopener"><strong>GitHub</strong> <strong>discussion boards</strong></a> to share feedback, ask questions, and help shape the future of this extension with your ideas:</p> <ul> <li><a href="https://github.com/microsoft/vscode-cosmosdb/discussions/categories/announcements" target="_blank" rel="noopener"><strong>Announcements</strong></a> – Updates on releases, new features, and upcoming plans.</li> <li><a href="https://github.com/microsoft/vscode-cosmosdb/discussions/categories/ideas" target="_blank" rel="noopener"><strong>Ideas</strong></a> – Suggest new features or improvements.</li> <li><a href="https://github.com/microsoft/vscode-cosmosdb/discussions/categories/general" target="_blank" rel="noopener"><strong>General</strong></a> – Ask questions and discuss anything about the extension.</li> </ul> <p><strong>Your feedback drives development!</strong> Vote on features, report issues, or suggest improvements in our <a href="https://github.com/microsoft/vscode-cosmosdb/issues?q=state%3Aopen%20label%3A%22feedback%20wanted%22" target="_blank" rel="noopener"><strong>Feedback Wanted</strong></a> section.</p> <h2>More Than Just MongoDB!</h2> <p>The Azure Databases VS Code Extension isn&#8217;t just about MongoDB! It supports <strong>Azure Cosmos DB for NoSQL</strong> as well, giving developers a single tool to manage different database models with ease.</p> <p>You can connect to <strong>Azure Cosmos DB for NoSQL</strong>, perform CRUD operations, and switch seamlessly between MongoDB and NoSQL environments. This extension simplifies workflows and provides a unified experience for managing cloud databases.</p> <h2>Conclusion</h2> <p>The <a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-cosmosdb" target="_blank" rel="noopener"><strong>Azure Databases VS Code Extension</strong></a> is more than just a database management tool &#8211; it provides a <strong>full-featured MongoDB GUI</strong> alongside support for <strong>Azure Cosmos DB for NoSQL</strong>. Whether you&#8217;re working with MongoDB or NoSQL databases, this extension brings database management together in one place, making it easier to connect, explore, and manage your data.</p> <p>With built-in tools for <strong>querying, document management, and data exploration</strong>, you can work with your databases efficiently without switching between multiple applications. Browse collections, import data, and run queries directly from VS Code.</p> <p>Try it today and see how this open-source MongoDB GUI helps simplify database development and improve productivity.</p> <h2><strong>Leave a review</strong></h2> <p>Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we’ll gift you $50. <a href="https://peerspotdotcom.my.site.com/proReviews/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50" target="_blank" rel="noopener">Get started here</a>.</p> <h2><strong>About Azure Cosmos DB</strong></h2> <p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</p> <p><a href="https://cosmos.azure.com/try/" target="_blank" rel="noopener">Try Azure Cosmos DB for free here.</a> To stay in the loop on Azure Cosmos DB updates, follow us on <a href="https://twitter.com/AzureCosmosDB" target="_blank" rel="noopener">X</a>, <a href="https://aka.ms/AzureCosmosDBYouTube" target="_blank" rel="noopener">YouTube</a>, and <a href="https://www.linkedin.com/company/azure-cosmos-db/" target="_blank" rel="noopener">LinkedIn</a>.</p> <p>&nbsp;</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/a-powerful-open-source-mongodb-gui-for-everyone/">A Powerful, Open-Source MongoDB GUI for Everyone</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/a-powerful-open-source-mongodb-gui-for-everyone/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item> <title>Use Azure Cosmos DB as a Docker container in CI/CD pipelines</title> <link>https://devblogs.microsoft.com/cosmosdb/use-azure-cosmos-db-as-a-docker-container-in-ci-cd-pipelines/</link> <comments>https://devblogs.microsoft.com/cosmosdb/use-azure-cosmos-db-as-a-docker-container-in-ci-cd-pipelines/#respond</comments> <dc:creator><![CDATA[Abhishek Gupta]]></dc:creator> <pubDate>Wed, 05 Feb 2025 18:31:53 +0000</pubDate> <category><![CDATA[Azure Cosmos DB for NoSQL]]></category> <category><![CDATA[.NET]]></category> <category><![CDATA[DevOps]]></category> <category><![CDATA[Docker]]></category> <category><![CDATA[go]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[Python]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9417</guid> <description><![CDATA[<p>There are lot of benefits to using Docker containers in CI/CD pipelines, especially for stateful systems like databases. For example, when you run integration tests, each CI job can start the database in an isolated container with a clean state, preventing conflicts between tests. This results in a testing environment that is reliable, consistent, and [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/use-azure-cosmos-db-as-a-docker-container-in-ci-cd-pipelines/">Use Azure Cosmos DB as a Docker container in CI/CD pipelines</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p>There are lot of benefits to using Docker containers in CI/CD pipelines, especially for stateful systems like databases. For example, when you run integration tests, each CI job can start the database in an isolated container with a clean state, preventing conflicts between tests. This results in a testing environment that is reliable, consistent, and cost effective. This approach also reduces latency and improves the overall performance of the CI/CD pipeline because the database is locally accessible.</p> <p>The <a href="https://learn.microsoft.com/azure/cosmos-db/emulator-linux" target="_blank" rel="noopener">Linux-based Azure Cosmos DB emulator</a> is available as a Docker container and can run on a variety of platforms, including ARM64 architectures like Apple Silicon. It allows local development and testing of applications without needing an Azure subscription or incurring service costs. You can easily run it as a Docker container, and use it for local development and testing:</p> <pre class="prettyprint language-default"><code class="language-default">docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview</code></pre> <h2>Azure Cosmos DB + GitHub Actions</h2> <p>Let’s walk through an example to better understand how to use Azure Cosmos DB emulator with <a href="https://docs.github.com/actions" target="_blank" rel="noopener">GitHub Actions</a>, which is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline using workflows. A workflow is a configurable automated process that can run one or more jobs. It is defined by a YAML file checked in to your repository and runs when triggered by an event in your repository, or they can be triggered manually, or at a defined schedule.</p> <h3>Example: CI workflow for a .NET application</h3> <p>This GitHub Actions workflow configures Azure Cosmos DB Linux-based emulator as a <a href="https://docs.github.com/actions/use-cases-and-examples/using-containerized-services/about-service-containers" target="_blank" rel="noopener">GitHub actions service container</a> as part of a job. GitHub takes care of starting the Docker container and destroys it when the job completes – no manual intervention required (such as executing the docker run command).</p> <pre class="prettyprint language-default"><code class="language-default">name: .NET App CI on: push: branches: [main] paths: - 'dotnet-app/**' pull_request: branches: [main] paths: - 'dotnet-app/**' jobs: build-and-test: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, ubuntu-24.04-arm] services: cosmosdb: image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview ports: - 8081:8081 env: PROTOCOL: https env: COSMOSDB_CONNECTION_STRING: ${{ secrets.COSMOSDB_CONNECTION_STRING }} COSMOSDB_DATABASE_NAME: ${{ vars.COSMOSDB_DATABASE_NAME }} COSMOSDB_CONTAINER_NAME: ${{ vars.COSMOSDB_CONTAINER_NAME }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up .NET uses: actions/setup-dotnet@v3 with: dotnet-version: '8.0.x' - name: Export Cosmos DB Emulator Certificate run: | sudo apt update &amp;&amp; sudo apt install -y openssl openssl s_client -connect localhost:8081 &lt;/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' &gt; cosmos_emulator.cert sudo cp cosmos_emulator.cert /usr/local/share/ca-certificates/ sudo update-ca-certificates - name: Install dependencies run: cd dotnet-app &amp;&amp; dotnet restore - name: Build run: cd dotnet-app &amp;&amp; dotnet build --no-restore - name: Run tests run: cd dotnet-app &amp;&amp; dotnet test --no-build --verbosity normal</code></pre> <p>This job is configured to run on an Ubuntu runner and uses the <code>mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview</code> docker image as a service container. The connection string, database name, and container name are configured as environment variables. Since the job runs directly on a <a href="https://docs.github.com/actions/using-github-hosted-runners/using-github-hosted-runners" target="_blank" rel="noopener">GitHub Actions hosted runner</a>, the <strong>Run tests</strong> step can access the emulator using <code>localhost:8081</code>.</p> <p><div class="alert alert-primary">The Export Cosmos DB Emulator Certificate step is specific to .NET (as well as Java) applications because at the time of writing, the .NET and Java SDKs do not support <code>HTTP</code> mode in emulator. The <code>PROTOCOL</code> environment variable is set to <code>https</code> in the services section and this step exports the emulator certificate and adds them to the operating system trusted certificate store.</div></p> <h2>Try it out!</h2> <p>This <a href="https://github.com/AzureCosmosDB/cosmosdb-linux-emulator-github-actions" target="_blank" rel="noopener">GitHub repository</a> provides examples of how to configure the Linux emulator as part of a GitHub Actions CI workflow for .NET, Python, Java and Go applications on both x64 and ARM64 architectures (demonstrated for Linux runner using <code>ubuntu</code>).</p> <h3>Fork the repository</h3> <p>Navigate to the GitHub repository, and click the <strong>Fork</strong> button at the top-right corner of the repository page to create a copy of the repository under your own GitHub account.</p> <p>In your GitHub account, open the repository and make sure to enable workflows in the repository settings.</p> <p><img decoding="async" width="1622" height="806" class="wp-image-9418" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica.png" alt="A screenshot of a computer Description automatically generated" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica.png 1622w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-300x149.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-1024x509.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-768x382.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-1536x763.png 1536w" sizes="(max-width: 1622px) 100vw, 1622px" /></p> <p>Add the Cosmos DB emulator connection string (<code>COSMOSDB_CONNECTION_STRING</code>) as <a href="https://docs.github.com/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository" target="_blank" rel="noopener">Repository secret</a> to the repository. Use the following value:</p> <pre class="prettyprint language-default"><code class="language-default">AccountEndpoint=http://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==</code></pre> <p><img decoding="async" width="1377" height="796" class="wp-image-9419" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-1.png" alt="A screenshot of a computer Description automatically generated" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-1.png 1377w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-1-300x173.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-1-1024x592.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-1-768x444.png 768w" sizes="(max-width: 1377px) 100vw, 1377px" /></p> <p>Add database name (<code>COSMOSDB_DATABASE_NAME</code>) and container name (<code>COSMOSDB_CONTAINER_NAME</code>) as <a href="https://docs.github.com/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables#creating-configuration-variables-for-a-repository" target="_blank" rel="noopener">Repository variables</a>:</p> <p><img decoding="async" width="1380" height="706" class="wp-image-9420" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-2.png" alt="A screenshot of a computer Description automatically generated" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-2.png 1380w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-2-300x153.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-2-1024x524.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-2-768x393.png 768w" sizes="(max-width: 1380px) 100vw, 1380px" /></p> <p>Clone the forked repository to your local machine (make sure to use your GitHub username):</p> <pre class="prettyprint language-default"><code class="language-default">git clone https://github.com/&lt;your-username&gt;/cosmosdb-linux-emulator-github-actions.git cd cosmosdb-linux-emulator-github-actions</code></pre> <h3>Trigger the workflow</h3> <p>To trigger the workflow, make a small change to any/all of the code (.NET, Java, Python, or Go), add and commit your changes. For easier understanding, separate workflows are used for each language.</p> <p>Push your changes to your forked repository on GitHub:</p> <pre class="prettyprint language-default"><code class="language-default">git add . git commit -m "Your commit message" git push origin main</code></pre> <p>After pushing the changes, GitHub Actions will automatically run the workflow. Go to the <strong>Actions</strong> tab in your repository to see the status and results of the workflows. Review any logs or output to ensure the workflows are running correctly.</p> <p><img decoding="async" width="1379" height="745" class="wp-image-9421" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-3.png" alt="A screenshot of a computer Description automatically generated" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-3.png 1379w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-3-300x162.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-3-1024x553.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/02/a-screenshot-of-a-computer-description-automatica-3-768x415.png 768w" sizes="(max-width: 1379px) 100vw, 1379px" /></p> <h2>GitHub Actions runner considerations</h2> <p>The <a href="https://github.com/AzureCosmosDB/cosmosdb-linux-emulator-github-actions" target="_blank" rel="noopener">sample repository</a> demonstrated <code>ubuntu</code> based runners (for x64 and ARM64 architectures). This should work for <a href="https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/" target="_blank" rel="noopener">Windows ARM-based runners</a> as well. If you are considering Windows x64 runners, note that at the time of writing, GitHub Actions service containers are <a href="https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/">not supported in non-Linux runners</a>. But you can work around this by adding steps to install Docker, and manage its lifecycle including starting and stopping the container.</p> <h2>Wrap up</h2> <p>As I mentioned earlier, there are a lot of benefits of using Docker container in CI pipelines. GitHub Actions was used as the CI/CD platform in this case, but these concepts apply to other solutions as well. <a href="https://github.com/AzureCosmosDB/cosmosdb-linux-emulator-github-actions">Try it out</a> and let us know what you think!</p> <h2>Leave a review</h2> <p>Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we’ll gift you $50. <a href="https://peerspotdotcom.my.site.com/proReviews/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50" target="_blank" rel="noopener">Get started here</a>.</p> <h2>About Azure Cosmos DB</h2> <p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</p> <p><a href="https://cosmos.azure.com/try/" target="_blank" rel="noopener">Try Azure Cosmos DB for free here.</a> To stay in the loop on Azure Cosmos DB updates, follow us on <a href="https://twitter.com/AzureCosmosDB" target="_blank" rel="noopener">X</a>, <a href="https://aka.ms/AzureCosmosDBYouTube" target="_blank" rel="noopener">YouTube</a>, and <a href="https://www.linkedin.com/company/azure-cosmos-db/" target="_blank" rel="noopener">LinkedIn</a>.</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/use-azure-cosmos-db-as-a-docker-container-in-ci-cd-pipelines/">Use Azure Cosmos DB as a Docker container in CI/CD pipelines</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/use-azure-cosmos-db-as-a-docker-container-in-ci-cd-pipelines/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item> <title>Doctors generate faster, more accurate medical charts with Sayvant and Azure Cosmos DB</title> <link>https://devblogs.microsoft.com/cosmosdb/doctors-generate-faster-more-accurate-medical-charts-with-sayvant-and-azure-cosmos-db/</link> <comments>https://devblogs.microsoft.com/cosmosdb/doctors-generate-faster-more-accurate-medical-charts-with-sayvant-and-azure-cosmos-db/#respond</comments> <dc:creator><![CDATA[Azure Cosmos DB Team]]></dc:creator> <pubDate>Mon, 03 Feb 2025 20:34:42 +0000</pubDate> <category><![CDATA[Azure OpenAI]]></category> <category><![CDATA[Customers]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9375</guid> <description><![CDATA[<p>This article is guest authored by Justin Mardjuki, CEO, Sayvant. Emergency rooms and urgent care facilities handle an estimated 350 million visits each year. Acute care environments are fast-paced, unpredictable, and high stakes. In these settings, providing care quickly is paramount. That’s why we created Sayvant, the leading clinical documentation AI solution for acute care. [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/doctors-generate-faster-more-accurate-medical-charts-with-sayvant-and-azure-cosmos-db/">Doctors generate faster, more accurate medical charts with Sayvant and Azure Cosmos DB</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p><em>This article is guest authored by Justin Mardjuki, CEO, Sayvant.</em></p> <p>Emergency rooms and urgent care facilities handle an estimated <a href="https://urgentcareassociation.org/wp-content/uploads/2023-Urgent-Care-Industry-White-Paper.pdf">350 million visits</a> each year. Acute care environments are fast-paced, unpredictable, and high stakes. In these settings, providing care quickly is paramount. That’s why we created <a href="https://www.sayvant.com/">Sayvant</a>, the leading clinical documentation AI solution for acute care. Sayvant helps clinicians generate accurate, defensible medical charts in seconds, enabling them to focus on delivering patient care instead of administrative tasks like documentation. Sayvant automates the creation of clinically accurate charts from ambient listening and clinician dictation, saving emergency medicine and urgent care clinicians more than two hours a day and improving alignment with revenue cycle management (RCM), quality, and risk teams.</p> <p>We began developing Sayvant in 2024 in close collaboration with <a href="https://www.vituity.com/">Vituity</a>, the largest physician-owned and led multispecialty partnership with 6,000+ clinicians caring for more than 10 million patients annually. The partnership was led by Inflect Studio, Vituity’s innovation and incubation arm. The team selected Azure as our cloud partner as we began to build out the Sayvant solution. Using Azure Cosmos DB, we can power millions of discrete large language model (LLM) agentic workflows that turn encounter transcripts into robust, clinically validated medical charts.</p> <h1>Emergency rooms can be hectic—they need technology that can keep up</h1> <p>If you’ve ever been in an ER or urgent care facility, you know the environment can be high-stakes and intense. Doctors might see 40 patients in just one shift, managing several patients’ care at once. They rarely have time to retreat to a quiet space to complete documentation. Robust and accurate documentation can be challenging to create amid the chaos of an acute-care setting. As a result, poor documentation can lead to delayed patient discharge, inaccurate or incomplete billing, heightened malpractice risk, and lower adherence to quality measures.</p> <p>Sayvant was built to address these challenges. Hundreds of clinicians shaped the platform’s design, providing valuable feedback as we optimized the AI-powered documentation workflow that reduces charting time, improves accuracy, and allows clinicians to focus on patient care. Since we launched a private beta in April, we’ve been privileged to see rapid adoption of Sayvant. We’ve expanded our partnership from fewer than 10 sites of care to over 50 in just six months.</p> <p>With hundreds of clinicians trusting Sayvant on shifts every day, we’ve been able to meet demand, in part, thanks to Azure Cosmos DB and other Azure services. In a nutshell, Sayvant takes speech-to-text transcripts and transforms them into summaries for medical charts. We capture transcripts from conversations between patients and clinicians, as well as dictation from providers about things like imaging and lab results. Sayvant then produces charts that are tailored to the clinician’s preferences. Finally, Sayvant cross-checks the draft chart against peer-reviewed medical literature, as well as input from revenue cycles, billing, and quality teams to verify that it’s robust and defensible.</p> <h1>‘If Azure Cosmos DB can support ChatGPT’s scale, we knew it would be performant for Sayvant’</h1> <p>We knew Azure was the trusted technology partner in healthcare, and it would deliver the compliant, secure, and robust infrastructure we needed. We went all in on Azure at inception—100 percent of Sayvant runs on Azure. And the fact that Azure Cosmos DB already supports OpenAI and ChatGPT gave us confidence it would meet our needs and help us scale for the future.</p> <p>Today, we deploy Sayvant with dedicated applications, servers, and Azure Cosmos DB instances at every site using infrastructure as code. That lets us meet data security and privacy requirements for our hospital customers, and guarantee high-volume performance. With Azure Cosmos DB, we can provide multi-region replication so our customers can seamlessly jump from their recovery site in a different region, and back.</p> <p>We’re also able to keep chart latency low and power our multi-agent use case. By building on Azure Cosmos DB, clinicians can tap a button to generate a chart on their way out of the patient’s room, and by the time they’re back at their computer, a fully drafted chart is waiting for them. Since we launched Sayvant, clinicians have completed 15,000 shifts using the application and we’re generating thousands of charts every day, with 99 percent of charts generated in 60 seconds or less.</p> <h1>Powering hundreds of LLM agents</h1> <p>While audio transcription and summarization is table stakes, the magic of Sayvant is in its agentic infrastructure that helps clinicians generate robust, clinically-defensible charts that include medical decision-making and differential diagnosis. Hundreds of discrete LLM agents powered by Azure Cosmos DB and Azure OpenAI Service perform tasks associated with different sections of the chart. Certain agents have very simple tasks, like looking at a summary and generating an output. Others perform RAG searches and pull in peer-reviewed literature to help defend a clinician’s course of care.</p> <p>Each input/output is stored in Azure Cosmos DB, and we’re processing over 2 billion LLM tokens a month. Translating that into words on a page, it’s like having 60 pages of input/output for every chart created.</p> <h1>Delivering last-mile personalization</h1> <p>The opportunities to personalize the final chart format so it matches a clinician’s preferences and voice are virtually endless. We built Sayvant around a canonical medical chart and workflow, then fine-tune Sayvant for each site so it produces charts that meet the group’s billing, quality, and risk requirements. Finally, we add last-mile personalization where Sayvant generates chart language in the voice of particular clinicians. Some doctors write in more lengthy, academic prose, while others prefer concise bullet points, and Sayvant reflects that behavior.</p> <h1>Optimizing for accuracy and performance</h1> <p>As Sayvant continues to scale, we’re always looking to optimize accuracy and speed. Our North Star metric is the accuracy of our charts, which we track through the percentage of unchanged charts that are approved by doctors. AI hallucinations in healthcare are unacceptable, and Sayvant is architected to ensure final charts reflect encounter truth.</p> <p>Through Azure Cosmos DB analytics, we’re able to track metrics like latency and charts per user. We also run ongoing internal reviews comparing Sayvant-generated charts against human-generated charts. We have clinicians rate Sayvant charts and so far, we’ve found Sayvant-aided charts are more defensible in medical malpractice cases than the human-generated ones.</p> <p>As Sayvant becomes an integral part of acute care across the country, we want to ensure that we continue to generate massive time savings for clinicians without sacrificing chart quality.</p> <p>***</p> <h1>About the author</h1> <table style="width: 100%; border-collapse: collapse; border-style: hidden;"> <tbody> <tr> <td style="width: 17.1733%;"><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki.jpg"><img decoding="async" class="alignnone wp-image-9376 size-thumbnail" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki-150x150.jpg" alt="Image Justin Mardjuki" width="150" height="150" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki-150x150.jpg 150w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki-300x300.jpg 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki-768x768.jpg 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki-24x24.jpg 24w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki-48x48.jpg 48w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki-96x96.jpg 96w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/Justin-Mardjuki.jpg 800w" sizes="(max-width: 150px) 100vw, 150px" /></a></td> <td style="width: 82.8267%; border-style: hidden;">Justin Mardjuki is the CEO of Sayvant, the leader in clinical documentation AI for acute care settings. He previously co-founded Lifelink Systems, a pioneer in conversational AI for patient engagement. During Mardjuki’s tenure at Lifelink Systems, the company grew to 10M+ patient interactions a year supporting healthcare organizations like Banner Health, Memorial Sloan-Kettering, GlaxoSmithKline, and Genentech. Prior to Lifelink Systems, Mardjuki held finance and strategy roles at Box (NYSE: BOX). Mardjuki holds a Bachelor of Science in Economics from the University of Pennsylvania’s Wharton School of Business.</td> </tr> </tbody> </table> <h1>Leave a review</h1> <p>Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we’ll gift you $50. <a href="https://peerspotdotcom.my.site.com/proReviews/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50">Get started here</a>.</p> <h1>About Azure Cosmos DB</h1> <p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</p> <p><a href="https://cosmos.azure.com/try/">Try Azure Cosmos DB for free here.</a> To stay in the loop on Azure Cosmos DB updates, follow us on <a href="https://twitter.com/AzureCosmosDB">X</a>, <a href="https://aka.ms/AzureCosmosDBYouTube">YouTube</a>, and <a href="https://www.linkedin.com/company/azure-cosmos-db/">LinkedIn</a>.</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/doctors-generate-faster-more-accurate-medical-charts-with-sayvant-and-azure-cosmos-db/">Doctors generate faster, more accurate medical charts with Sayvant and Azure Cosmos DB</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/doctors-generate-faster-more-accurate-medical-charts-with-sayvant-and-azure-cosmos-db/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item> <title>Revolutionizing Large-Scale AI with Janusgraph and Azure Managed Instance for Apache Cassandra</title> <link>https://devblogs.microsoft.com/cosmosdb/revolutionizing-large-scale-ai-with-janusgraph-and-azure-managed-instance-for-apache-cassandra/</link> <comments>https://devblogs.microsoft.com/cosmosdb/revolutionizing-large-scale-ai-with-janusgraph-and-azure-managed-instance-for-apache-cassandra/#respond</comments> <dc:creator><![CDATA[Dileep Rao]]></dc:creator> <pubDate>Fri, 24 Jan 2025 13:00:13 +0000</pubDate> <category><![CDATA[Azure Cosmos DB for NoSQL]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9363</guid> <description><![CDATA[<p>JanusGraph is a high-performance graph database that offers flexibility in choosing storage backends. Apache Cassandra is a distributed NoSQL database known for its scalability and fault tolerance. Combining these two technologies can create a robust and efficient graph database solution. You can use the Azure Managed Instance for Apache Cassandra which is a fully-managed offering [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/revolutionizing-large-scale-ai-with-janusgraph-and-azure-managed-instance-for-apache-cassandra/">Revolutionizing Large-Scale AI with Janusgraph and Azure Managed Instance for Apache Cassandra</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p><img decoding="async" class="alignnone" src="https://media.licdn.com/dms/image/v2/D5612AQGAEtM2SeGhkw/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1723533243446?e=1743033600&amp;v=beta&amp;t=vbI3UqVDv6RdBZ9osguh_NP8b_8DlZGWe4hobITeudw" alt="" width="1278" height="720" /></p> <p><a href="https://janusgraph.org/" target="_blank" rel="noopener"><strong>JanusGraph</strong></a> is a high-performance graph database that offers flexibility in choosing storage backends. <a href="https://cassandra.apache.org/_/index.html" target="_blank" rel="noopener"><strong>Apache Cassandra</strong></a> is a distributed NoSQL database known for its scalability and fault tolerance. Combining these two technologies can create a robust and efficient graph database solution. You can use the <a href="https://azure.microsoft.com/products/managed-instance-apache-cassandra" target="_blank" rel="noopener"><strong>Azure Managed Instance for Apache Cassandra</strong></a> which is a fully-managed offering on Azure with boasts of features such as Turnkey Horizontal and Vertical Scaling, Support for Customer Managed Keys, LDAP support, auto patch of OS, automatic repairs, Azure Monitor, Lucene Index support and keeping in line with today’s trends, support for Vector database and Dynamic Data Masking.</p> <h2><b>How Azure Managed Instance for Apache Cassandra Powers Scalable Health Monitoring</b></h2> <p>The AIOps Health &amp; Synthetics Platform team built a system that detects outages using SLI data, powering health monitoring across Azure. By using automated alerts that intelligent monitoring triggers to keep Azure&#8217;s health in check, the team is at the forefront of innovation, constantly seeking ways to enhance health monitoring in Azure environments. The automated alert architecture of AIOps leverages a combination of Azure Managed Instance for Apache Cassandra and Janus Graph to store and process data, enabling them to deliver automated alerts and insights in complex distributed environments while ensuring scalability, reliability, and performance. Furthermore, they utilize the health graph to represent and analyze the intricate relationships between various system components, allowing for a comprehensive understanding of system health. Their ability to scale aggregation across different scopes ensures that they can efficiently collect, analyze, and act upon data, whether at the level of individual nodes or across the entire infrastructure.</p> <p>&nbsp;</p> <p><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/architecture-1.png"><img decoding="async" class="aligncenter size-full wp-image-9367" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/architecture-1.png" alt="Image architecture" width="864" height="478" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/architecture-1.png 864w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/architecture-1-300x166.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/architecture-1-768x425.png 768w" sizes="(max-width: 864px) 100vw, 864px" /></a></p> <p>&nbsp;</p> <h2><b>Optimizing Data Management for High Performance with Azure Managed Instance for Apache Cassandra</b></h2> <p>Customers can leverage Azure Managed Instance for Apache Cassandra to store and process large volumes of data in distributed environments, making it suitable for handling health monitoring data. By adopting it as their backend data store, customers can accommodate large-scale nodes and manage data in a scalable, reliable, and high-performance manner. Additionally, customers can combine Azure Managed Instance for Apache Cassandra with other technologies to create their own automated alert and multi-tenancy architectures.</p> <p>By using Janus Graph as the graph database layer atop Azure Managed Instance for Apache Cassandra, customers can store and traverse graph data structures, making it ideal for representing complex relationships between different system components. Customers can also use a time series store to hold pre-aggregated statistics and performance metrics, optimizing for efficient queries of time-based data to provide insights into system performance and health over time. By considering multi-tenancy requirements and implementing resource optimization strategies, customers can maximize efficiency, reduce operational costs, and deliver a scalable and high-performance solution for their diverse needs.</p> <h3><b>How </b><b>does Azure Managed Instance for Apache Cassandra</b> <b>w</b><b>ork</b><b> with JanusGraph</b>?</h3> <p>JanusGraph leverages Cassandra&#8217;s distributed storage capabilities to store graph data in a highly available and scalable manner. Here&#8217;s a breakdown of how it works:</p> <ol> <li><strong>Storage Backend:</strong> JanusGraph uses Cassandra as its storage backend. This means graph data (vertices, edges, and properties) is persisted in Cassandra tables.</li> <li><strong>Data Modeling:</strong> JanusGraph maps graph concepts to Cassandra tables and columns. This mapping is optimized for efficient graph traversal and query performance.</li> <li><strong>Distributed Graph Storage:</strong> Cassandra&#8217;s distributed nature allows JanusGraph to handle large-scale graph datasets efficiently. Data is replicated across multiple nodes for high availability and fault tolerance.</li> <li><strong>Query Processing:</strong> JanusGraph provides a Gremlin-based API for querying graph data. Queries are translated into Cassandra CQL queries and executed on the Cassandra cluster.</li> </ol> <p>&nbsp;</p> <h3><b>Benefits of Using JanusGraph with Cassandra</b></h3> <ul> <li><strong>Scalability:</strong> Both JanusGraph and Cassandra are designed for handling large datasets and high write throughput.</li> <li><strong>High Availability:</strong> Cassandra&#8217;s replication and fault tolerance ensure data durability and availability.</li> <li><strong>Performance:</strong> Optimized data modeling and efficient query processing deliver excellent performance.</li> <li><strong>Flexibility:</strong> JanusGraph offers options for customizing storage and query processing.</li> <li><strong>Active Community:</strong> Both JanusGraph and Cassandra have active communities with extensive documentation.</li> </ul> <h3><b>Key Considerations</b></h3> <ul> <li><strong>Data Model:</strong> Carefully design your graph data model to optimize query performance and storage efficiency.</li> <li><strong>Indexing:</strong> Create appropriate indexes on Cassandra tables to improve query performance.</li> <li><strong>Performance Tuning:</strong> Tune JanusGraph and Cassandra configurations based on your workload characteristics.</li> <li><strong>Monitoring:</strong> Monitor both JanusGraph and Cassandra for performance and availability.</li> </ul> <p>&nbsp;</p> <h3><b>Similar Use Cases where this </b><strong>combination can benefit</strong></h3> <p>JanusGraph with Cassandra is suitable for a wide range of applications, including:</p> <ul> <li><strong>Social networks:</strong> Modeling relationships between users, groups, and content.</li> <li><strong>Recommendation systems:</strong> Analyzing user preferences and behavior to suggest items.</li> <li><strong>Fraud detection:</strong> Identifying patterns of fraudulent activity in financial transactions.</li> <li><strong>Knowledge graphs:</strong> Representing and querying complex relationships between entities.</li> <li><strong>IoT data analysis:</strong> Analyzing sensor data and device interactions.</li> </ul> <p><strong> </strong></p> <h2>Getting Started</h2> <p><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/janusgraph_cassandra.png"><img decoding="async" class="aligncenter size-full wp-image-9366" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/janusgraph_cassandra.png" alt="Image janusgraph cassandra" width="650" height="343" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/janusgraph_cassandra.png 650w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/janusgraph_cassandra-300x158.png 300w" sizes="(max-width: 650px) 100vw, 650px" /></a></p> <p>To get started with JanusGraph and Azure managed instance for Apache Cassandra, follow these steps:</p> <ol> <li><strong>Create an Azure Managed Instance for Apache Cassandra Cluster:</strong> Follow the official Azure documentation to create a Cassandra cluster with the desired configuration (number of nodes, storage, network settings)</li> <li><strong>Install JanusGraph</strong>: <a href="https://docs.janusgraph.org/master/getting-started/installation/" target="_blank" rel="noopener">Download</a> and <a href="https://docs.janusgraph.org/master/storage-backend/cassandra/" target="_blank" rel="noopener">configure</a> JanusGraph to use Cassandra as the storage backend.</li> <li><strong>Create a Graph</strong>: Create a JanusGraph instance and <a href="https://docs.janusgraph.org/master/storage-backend/cassandra/">connect</a> it to the Cassandra cluster.</li> <li><strong>Load Data:</strong> Populate the graph with your data using the Gremlin API.</li> <li><strong>Query Data:</strong> Use Gremlin to query and analyze your graph data.</li> </ol> <p>By following these steps and considering the key points mentioned above, you can effectively leverage the power of JanusGraph and Azure Managed Instance for Apache Cassandra for your graph database applications.</p> <h2>Conclusion</h2> <p>In summary, Azure Managed Instance for Apache Cassandra played a key role in enabling the AIOps Health &amp; Synthetics Platform team to provide scalable automated alerts and insights in complex distributed environments. This scalability enables the delivery of precise and timely insights, improving the effectiveness of health monitoring and alerting processes. Customers can leverage Azure Managed Instance for Apache Cassandra to enhance their own health monitoring processes and create their own automated alert and multi-tenancy architectures. With the power of Azure Managed Instance for Apache Cassandra, customers can revolutionize their large-scale health monitoring and stay at the forefront of innovation in their respective industries.</p> <h2 id="leave-a-review">Leave a review</h2> <p>Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we’ll gift you $50. <a href="https://peerspotdotcom.my.site.com/proReviews/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50" target="_blank" rel="noopener">Get started here</a>.</p> <h2 id="about-azure-cosmos-db">About Azure Cosmos DB</h2> <p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</p> <p><a href="https://cosmos.azure.com/try/" target="_blank" rel="noopener">Try Azure Cosmos DB for free here.</a> To stay in the loop on Azure Cosmos DB updates, follow us on <a href="https://twitter.com/AzureCosmosDB" target="_blank" rel="noopener">X</a>, <a href="https://aka.ms/AzureCosmosDBYouTube" target="_blank" rel="noopener">YouTube</a>, and <a href="https://www.linkedin.com/company/azure-cosmos-db/" target="_blank" rel="noopener">LinkedIn</a>.</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/revolutionizing-large-scale-ai-with-janusgraph-and-azure-managed-instance-for-apache-cassandra/">Revolutionizing Large-Scale AI with Janusgraph and Azure Managed Instance for Apache Cassandra</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/revolutionizing-large-scale-ai-with-janusgraph-and-azure-managed-instance-for-apache-cassandra/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item> <title>Join the Conversation: Call for Proposals for Azure Cosmos DB Conf 2025!</title> <link>https://devblogs.microsoft.com/cosmosdb/join-the-conversation-call-for-proposals-for-azure-cosmos-db-conf-2025/</link> <comments>https://devblogs.microsoft.com/cosmosdb/join-the-conversation-call-for-proposals-for-azure-cosmos-db-conf-2025/#respond</comments> <dc:creator><![CDATA[Jay Gordon]]></dc:creator> <pubDate>Tue, 14 Jan 2025 15:00:22 +0000</pubDate> <category><![CDATA[Announcements]]></category> <category><![CDATA[Azure Cosmos DB Conf]]></category> <category><![CDATA[Azure Cosmos DB]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9338</guid> <description><![CDATA[<p>Are you passionate about Azure Cosmos DB? Do you have insights, experiences, or innovations that the developer community would love to hear? Now is your chance to shine at the Azure Cosmos DB Conference 2025 – a free, virtual developer event co-organized by Microsoft and the vibrant Azure Cosmos DB community. Mark your calendar for [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/join-the-conversation-call-for-proposals-for-azure-cosmos-db-conf-2025/">Join the Conversation: Call for Proposals for Azure Cosmos DB Conf 2025!</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p><img decoding="async" width="2500" height="1017" class="wp-image-9340 aligncenter" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/word-image-9338-1-scaled.jpeg" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/word-image-9338-1-scaled.jpeg 2500w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/word-image-9338-1-300x122.jpeg 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/word-image-9338-1-1024x417.jpeg 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/word-image-9338-1-768x313.jpeg 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/word-image-9338-1-1536x625.jpeg 1536w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/word-image-9338-1-2048x833.jpeg 2048w" sizes="(max-width: 2500px) 100vw, 2500px" /></p> <p>Are you passionate about Azure Cosmos DB? Do you have insights, experiences, or innovations that the developer community would love to hear? Now is your chance to shine at the <strong>Azure Cosmos DB Conference 2025</strong> – a free, virtual developer event co-organized by Microsoft and the vibrant Azure Cosmos DB community. Mark your calendar for <strong>April 15, 2025</strong>, and join us online for an exciting day of learning, sharing, and inspiration!</p> <p>This is our fifth annual conference, and <a id="post-9338-_Int_WXke2d6y"></a>we’re looking for YOU to contribute to making it an unforgettable experience!</p> <h3><strong>Why Submit a Proposal?</strong></h3> <p>Azure Cosmos DB Conference 2025 <a id="post-9338-_Int_ombMbIe9"></a>isn&#8217;t just another technical event – <a id="post-9338-_Int_PM6MAyWU"></a>it’s a celebration of innovation, collaboration, and shared learning. As a speaker, you will:</p> <ul> <li><strong>Showcase Your Expertise:</strong> Share in-depth knowledge through a 25-minute session or deliver a concise, impactful 5-minute lightning talk.</li> <li><strong>Engage with a Global Audience:</strong> Connect with developers, architects, and data enthusiasts from around the world in an engaging and fun atmosphere.</li> <li><strong>Inspire and Educate:</strong> Provide actionable insights through live demonstrations, code walkthroughs, case studies, and more.</li> <li><strong>Contribute to a Thriving Community:</strong> Be part of a dynamic community that is shaping the future of cloud-based applications with Azure Cosmos DB.</li> </ul> <h3><strong>Call for Proposals</strong></h3> <p>We <a id="post-9338-_Int_1oZ56RD1"></a>can’t wait to hear your voice and see your ideas! Whether you are a seasoned presenter or stepping up for the first time, your insights are valuable to us. Mark your calendars with these key submission dates:</p> <ul> <li><strong>Call opens:</strong> January 14, 2025, at 12:00 AM PST</li> <li><strong>Call closes:</strong> February 25, 2025, at 11:59 PM PST (February 26, 2025, 2:59 AM EST)</li> </ul> <p><div class="d-flex justify-content-left"><a class="cta_button_link btn-primary mb-24" href="https://aka.ms/cosmosconfcfp" target="_blank">submit your session now!</a></div></p> <h3><strong>What We&#8217;re Looking For</strong></h3> <p>We invite proposals focusing on, but not limited to, the following topics:</p> <h4><strong>Intelligent Applications with AI and Azure Cosmos DB</strong></h4> <p>Explore how Cosmos DB and artificial intelligence can create powerful, forward-thinking applications. Discuss AI-enabled architectures leveraging OpenAI’s LLMs, Semantic Kernel, LangChain, LlamaIndex, and more.</p> <h4><strong>Design Patterns and Best Practices</strong></h4> <p>Share proven design patterns and best practices for building scalable, efficient, and maintainable NoSQL solutions using Azure Cosmos DB.</p> <h4><strong>Innovative and Specific Use Cases</strong></h4> <p>Dive into unique scenarios where Azure Cosmos DB made a difference. Whether <a id="post-9338-_Int_YhLbasFq"></a>it’s connected <a id="post-9338-_Int_RuBmfCo1"></a>smart products, real-time fraud detection, personalization, or building your own GenAI application, your detailed narrative could inspire countless others.</p> <h4><strong>Focus on Specific Programming Languages and Tools</strong></h4> <p>Highlight experiences with the Azure Cosmos DB SDK in popular languages like Python, Node.js, or Java. Discuss how open-source frameworks, Visual Studio Code, GitHub, or Azure Data Studio enhance developer productivity and solution extensibility.</p> <h4><strong>Demonstration-Heavy Content</strong></h4> <p>Engage the community with live demos, code sessions, and interactive experiences to provide a hands-on, immersive learning experience.</p> <h4><strong>Data Migration Sessions</strong></h4> <p>Share strategies, best practices, and lessons learned for migrating data to Azure Cosmos DB effectively, tackling complexities and optimizing migrations.</p> <h4><strong>Integration with Azure Ecosystem</strong></h4> <p>Explore integration scenarios with Azure services like Azure Kubernetes Service, Azure OpenAI Service, and more to enhance scalability, performance, and intelligence.</p> <h3><strong>What to Include in Your Submission</strong></h3> <ul> <li><strong>About You:</strong> Share your background, expertise, and previous speaking experience.</li> <li><strong>Previous Presentations:</strong> Provide links to videos, code repositories, or relevant content that <a id="post-9338-_Int_urexzbbL"></a>showcases your work.</li> <li><strong>Your Proposal:</strong> Clearly outline your session&#8217;s topic, format (full session or lightning talk), and what attendees will gain from it.</li> </ul> <p>Our selection process considers your expertise in Azure Cosmos DB, familiarity with related technologies, and your ability to deliver a confident, well-prepared talk. We encourage you to provide links to past sessions, code samples, or other qualifications that highlight your experience.</p> <h3><strong>Reflecting on 2024: A Look Back</strong></h3> <p>Last year’s sessions were filled with groundbreaking insights, innovative use cases, and practical demonstrations that illuminated the vast possibilities of Azure Cosmos DB. As we prepare for 2025, <a id="post-9338-_Int_ztoRNFLr"></a>let’s take a moment to look back at some of the standout sessions and memorable moments from <strong>Azure Cosmos DB Conf 2024</strong>.</p> <ul> <li><strong>Playlist of All 2024 Talks:</strong> Relive the entire conference experience by browsing through the <a href="https://www.youtube.com/watch?v=PcSqw3CyABE&amp;list=PLmamF3YkHLoKYkttA6OLkqtdf9_CmHDG0" target="_blank" rel="noopener">full playlist of sessions</a>. This collection <a id="post-9338-_Int_EbA85Inj"></a>showcases a variety of topics and deep dives that spanned the event.</li> <li><strong>Highlight Reel:</strong> Get a taste of the most exciting moments with the <a href="https://youtu.be/UidCjXoFY1s?si=-wwOIvQzYPZDlyVN" target="_blank" rel="noopener">Azure Cosmos DB Conf 2024 Highlight Reel</a>, capturing the energy, key announcements, and high-impact sessions that defined the conference.</li> </ul> <p style="text-align: center;"><iframe src="//www.youtube.com/embed/UidCjXoFY1s?si=-wwOIvQzYPZDlyVN" width="560" height="314" allowfullscreen="allowfullscreen"></iframe></p> <h4><strong>Some Talks of Note</strong></h4> <ul> <li><strong>Kirill Gavrylyuk &#8211; Microsoft: </strong><a href="https://youtu.be/s1TneZ6IqlI?si=kTe37l2xl87OjkkL" target="_blank" rel="noopener"><strong>Azure Cosmos DB Conf 2024 Keynote</strong></a> <ul> <li><em>Session Details:</em> Hear the latest and greatest from the Azure Cosmos DB team, including new features, customer stories, and a look at the future of the service. The keynote also featured insightful interviews with customers like Mastercard, Enoteca, and TomTom, highlighting real-world applications and success stories.</li> </ul> </li> <li><strong>Michael John Pena &#8211; Playtime Solutions: </strong><a href="https://youtu.be/fThQMjrJLTI?si=zg2KUDwe0LFzGoGE" target="_blank" rel="noopener"><strong>Azure Cosmos DB as Vector Database</strong></a> <ul> <li><em>Session Details:</em> This session delved into using Azure Cosmos DB as a vector database, exploring its capabilities in handling large-scale vector data with low latency and high throughput. Michael provided a comprehensive walkthrough on setting up the database, loading vector data, executing queries, and shared best practices for optimizing performance and cost—ideal for data professionals eager to enhance their skill set.</li> </ul> </li> <li><strong>Teena Idnani &#8211; Formerly JP Morgan Chase, now Microsoft: </strong><a href="https://youtu.be/DrBBe2zKWXQ?si=8UNcQGK19rkn47O0" target="_blank" rel="noopener"><strong>NoSQL, YesCosmos: Build that Eventually Consistent Application using Azure Cosmos DB</strong></a> <ul> <li><em>Session Details:</em> Teena guided attendees through the essentials of building eventually consistent applications with Azure Cosmos DB. Her presentation addressed the practical aspects of leveraging Cosmos DB for designing distributed applications that embrace eventual consistency, discussing key implementation strategies, optimization techniques, and addressing challenges. This session empowered developers to build robust, scalable applications while deepening their understanding of distributed system behaviors.</li> </ul> </li> </ul> <h3><strong>Looking Ahead to 2025</strong></h3> <p>The innovative ideas and detailed explorations from 2024 set a high bar for excellence, and they continue to inspire us as we gear up for <strong>Azure Cosmos DB Conference 2025</strong>. We’re excited to see how speakers in 2025 will build on these foundations, pushing the envelope further in intelligent applications, design patterns, use cases, integration scenarios, and more.</p> <p>As you consider submitting your proposal, think about how your unique experience and insights can contribute to this legacy of excellence. Whether <a id="post-9338-_Int_QHHrHF9r"></a>you’re inspired by the success stories of yesterday or driven to pioneer new frontiers with Azure Cosmos DB, your voice could be the next to resonate at our upcoming conference.</p> <p><strong>Ready to inspire the community with your ideas? Submit your proposal today</strong> and play a pivotal part in shaping the future of Azure Cosmos DB at Conference 2025!</p> <p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://aka.ms/CosmosConfCFP" target="_blank" rel="noopener">Submit Your Proposal Now</a></p> <p>Join us online on April 15, 2025 – <a id="post-9338-_Int_gtH6pJZN"></a>let’s create something extraordinary together!</p> <div class="entry-content sharepostcontent " data-bi-area="body_article" data-bi-id="post_page_body_article"> <h2 id="leave-a-review">Leave a review</h2> <p>Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we’ll gift you $50. <a href="https://peerspotdotcom.my.site.com/proReviews/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50" target="_blank" rel="noopener">Get started here</a>.</p> <h2 id="about-azure-cosmos-db">About Azure Cosmos DB</h2> <p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</p> <p><a href="https://cosmos.azure.com/try/" target="_blank" rel="noopener">Try Azure Cosmos DB for free here.</a> To stay in the loop on Azure Cosmos DB updates, follow us on <a href="https://twitter.com/AzureCosmosDB" target="_blank" rel="noopener">X</a>, <a href="https://aka.ms/AzureCosmosDBYouTube" target="_blank" rel="noopener">YouTube</a>, and <a href="https://www.linkedin.com/company/azure-cosmos-db/" target="_blank" rel="noopener">LinkedIn</a>.</p> </div> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/join-the-conversation-call-for-proposals-for-azure-cosmos-db-conf-2025/">Join the Conversation: Call for Proposals for Azure Cosmos DB Conf 2025!</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/join-the-conversation-call-for-proposals-for-azure-cosmos-db-conf-2025/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item> <title>Cosmos DB Embeddings Generator Sample</title> <link>https://devblogs.microsoft.com/cosmosdb/embeddings-generator-sample/</link> <comments>https://devblogs.microsoft.com/cosmosdb/embeddings-generator-sample/#respond</comments> <dc:creator><![CDATA[Mark Brown]]></dc:creator> <pubDate>Tue, 14 Jan 2025 02:39:38 +0000</pubDate> <category><![CDATA[Azure Cosmos DB for NoSQL]]></category> <category><![CDATA[Azure OpenAI]]></category> <category><![CDATA[Change Feed]]></category> <category><![CDATA[Tips and Tricks]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9351</guid> <description><![CDATA[<p>Ever since our first preview announcement for vector indexing and support for DiskANN and then again when we announced the GA for these features, customers have been asking us to make it easier to generate Azure OpenAI embeddings on their data in Azure Cosmos DB. So we did just that and created the Azure Cosmos [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/embeddings-generator-sample/">Cosmos DB Embeddings Generator Sample</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p>Ever since <a href="https://devblogs.microsoft.com/cosmosdb/introducing-vector-database-capabilities-in-azure-cosmos-db-for-nosql/" target="_blank" rel="noopener">our first preview announcement</a> for vector indexing and support for DiskANN and then again when we <a href="https://devblogs.microsoft.com/cosmosdb/new-vector-search-full-text-search-and-hybrid-search-features-in-azure-cosmos-db-for-nosql/" target="_blank" rel="noopener">announced the GA for these features</a>, customers have been asking us to make it easier to generate Azure OpenAI embeddings on their data in Azure Cosmos DB.</p> <p>So we did just that and created the <a href="https://github.com/AzureCosmosDB/cosmos-embeddings-generator" target="_blank" rel="noopener">Azure Cosmos DB Embeddings Generator</a> sample application and hosted it on GitHub.</p> <p>This sample shows how to use an Azure Cosmos DB Trigger and Output Binding in Azure Functions to automatically generate Azure OpenAI embeddings on a new or updated item, then save it back to the same item in Cosmos DB.</p> <p>There is both a C# and Python version of this sample. You can choose your own adventure on which you want to use.</p> <p><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/embedding-generator-code.png"><img decoding="async" class="size-full wp-image-9352 aligncenter" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/embedding-generator-code.png" alt="Image embedding generator code" width="1551" height="425" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/embedding-generator-code.png 1551w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/embedding-generator-code-300x82.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/embedding-generator-code-1024x281.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/embedding-generator-code-768x210.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/embedding-generator-code-1536x421.png 1536w" sizes="(max-width: 1551px) 100vw, 1551px" /></a></p> <h2>What&#8217;s in this sample</h2> <p>Here are the specifics of what you can see and learn from this sample.</p> <ul dir="auto"> <li>How to create Azure Cosmos DB Trigger and Output Bindings for Azure Functions. <ul dir="auto"> <li>The Functions Trigger and Output Binding are completely configuration driven. There are no hard coded values in this sample.</li> <li>Even the input value for the Functions Trigger is cast as a dynamic type to make it easier to take and use as-is.</li> </ul> </li> <li>This sample also demonstrates a common ask from customers which is how to prevent endless loops in Functions Triggers (and change feed) from in-place document updates. In our sample, we compare hashes on the document to determine if it has changed.</li> <li>How to generate embeddings using Azure OpenAI SDK with using the <em>text-embedding-3-small</em> embedding model.</li> <li>How to do Entra ID authentication and RBAC for Azure Functions and Azure Cosmos DB and Azure OpenAI.</li> <li>Deployment of this sample to Azure Functions, Azure Cosmos DB, Azure OpenAI with managed identities and RBAC.</li> </ul> <h2>Deploy and get started</h2> <p>To get the sample, just fork or clone the <a href="https://github.com/AzureCosmosDB/cosmos-embeddings-generator" target="_blank" rel="noopener">Azure Cosmos DB Embeddings Generator</a> sample application from GitHub.</p> <p>The sample deploys easily using <span style="font-family: terminal, monaco, monospace;"><a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/overview" target="_blank" rel="noopener">Azure Developer CLI (AZD)</a>.</span> After a few minutes you can navigate to the Azure Portal and create a new document see it in action. When you deploy, <span style="font-family: terminal, monaco, monospace;">AZD </span>also writes a <span style="font-family: terminal, monaco, monospace;">local.settings.json</span>  file so you can easily step through your C# or Python to see how it works. Then take this and easily extend this to for your own data.</p> <p><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/sample-embeddings.png"><img decoding="async" class="size-full wp-image-9354 aligncenter" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/sample-embeddings.png" alt="Image sample embeddings" width="570" height="392" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/sample-embeddings.png 570w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2025/01/sample-embeddings-300x206.png 300w" sizes="(max-width: 570px) 100vw, 570px" /></a></p> <p>We hope you enjoy this new sample. Feel free to leave comments in the <a href="https://github.com/AzureCosmosDB/cosmos-embeddings-generator/issues" target="_blank" rel="noopener">issues in GitHub</a>.</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/embeddings-generator-sample/">Cosmos DB Embeddings Generator Sample</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/embeddings-generator-sample/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item> <title>An introduction to Multi-Agent AI apps with Azure Cosmos DB and Azure OpenAI</title> <link>https://devblogs.microsoft.com/cosmosdb/an-introduction-to-multi-agent-ai-apps-with-azure-cosmos-db-and-azure-openai/</link> <comments>https://devblogs.microsoft.com/cosmosdb/an-introduction-to-multi-agent-ai-apps-with-azure-cosmos-db-and-azure-openai/#comments</comments> <dc:creator><![CDATA[Theo van Kraay]]></dc:creator> <pubDate>Thu, 12 Dec 2024 15:00:37 +0000</pubDate> <category><![CDATA[AI]]></category> <category><![CDATA[Azure Cosmos DB for NoSQL]]></category> <category><![CDATA[Multi-agent]]></category> <category><![CDATA[Python SDK]]></category> <category><![CDATA[Azure Cosmos DB]]></category> <category><![CDATA[Azure OpenAI]]></category> <category><![CDATA[Multi-Agent]]></category> <category><![CDATA[OpenAI Swarm]]></category> <category><![CDATA[Vector Search]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9239</guid> <description><![CDATA[<p>Azure Cosmos DB was named by Bloomberg as the no. 1 Database of choice for Retrieval Augmented Generation (RAG) and Large Language Model (LLM) customization. It is used by OpenAI to scale it’s ChatGPT service, and by many thousands of customers worldwide, serving billions of end-users with globally distributed apps at planet scale. In this [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/an-introduction-to-multi-agent-ai-apps-with-azure-cosmos-db-and-azure-openai/">An introduction to Multi-Agent AI apps with Azure Cosmos DB and Azure OpenAI</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p>Azure Cosmos DB was <a href="https://www.zdnet.com/article/enterprises-double-their-gen-ai-deployment-efforts-bloomberg-survey-says/" target="_blank" rel="noopener">named by Bloomberg</a> as the no. 1 Database of choice for <a href="https://learn.microsoft.com/azure/cosmos-db/gen-ai/rag" target="_blank" rel="noopener">Retrieval Augmented Generation (RAG)</a> and <a href="https://en.wikipedia.org/wiki/Large_language_model" target="_blank" rel="noopener">Large Language Model (LLM)</a> customization. It is used by OpenAI to scale it’s ChatGPT service, and by many <a href="https://www.youtube.com/watch?v=t-63jw886-E" target="_blank" rel="noopener">thousands of customers</a> worldwide, serving billions of end-users with globally distributed apps at planet scale.</p> <p>In this blog we will explore a simple example for lightweight multi-agent orchestration in Python using <a href="https://github.com/openai/swarm" target="_blank" rel="noopener">OpenAI Swarm</a>. We’ll also see the benefits of being able to use Azure Cosmos DB as both a <a href="https://learn.microsoft.com/azure/cosmos-db/vector-database" target="_blank" rel="noopener">vector store</a> and an operational database.</p> <h2>What are multi-agent apps?</h2> <p>Multi-agent AI apps involve multiple autonomous agents designed to work together or independently to solve problems, achieve goals, or simulate behaviors. Each agent has specific capabilities, decision-making processes, and communication mechanisms, enabling them to collaborate, compete, or adapt within a shared environment. They are used where decentralized and cooperative strategies are essential.</p> <h2>Why is a multi-agent approach useful for building AI apps?</h2> <p>When building AI apps with Large Language Models (LLMs), think of LLMs as indexes on a database for unstructured text. Unlike structured queries, LLMs use natural language to interpolate and transform data, offering flexible &#8220;queries&#8221; but non-deterministic and sometimes inaccurate &#8220;results.&#8221; This is in contrast to traditional databases, which prioritize accuracy and predictability with minimal input flexibility. To optimize bespoke AI apps with LLMs, it&#8217;s crucial to balance their power with controlled accuracy. By clearly defining and narrowing the tasks each agent performs, we can mitigate the challenges of overloading a single agent with too many capabilities through prompting, by building multi-agent apps.</p> <h2>Building a multi-agent AI app</h2> <p><a href="https://github.com/openai/swarm" target="_blank" rel="noopener">OpenAI Swarm</a> makes agent coordination and execution lightweight, highly controllable, and easily testable. The semantics for creating an agent are simple, allowing you to build scalable, real-world solutions while avoiding a steep learning curve:</p> <pre class="prettyprint language-py"><code class="language-py">agent_a = Agent( name="Agent A", instructions="Instructions that tightly define the scope of agent A", functions=[transfer_to_agent_b, do_some_specific_function], ) agent_b = Agent( name="Agent B", instructions="Instructions that tightly define the scope of agent B", functions=[transfer_to_agent_a, do_some_specific_function], )</code></pre> <p dir="auto">In our <a href="https://github.com/AzureCosmosDB/multi-agent-swarm" target="_blank" rel="noopener">sample</a> app for a personal shopping AI assistant, 4 specialised agents are created:</p> <ol dir="auto"> <li><strong>Triage Agent</strong>: Determines the type of request and transfers to the appropriate agent.</li> <li><strong>Product Agent</strong>: Answers customer queries, applying the RAG pattern with <a href="https://learn.microsoft.com/azure/cosmos-db/nosql/vector-search" target="_blank" rel="noopener">vector search</a> in Azure Cosmos DB.</li> <li><strong>Refund Agent</strong>: Manages customer refunds, storing the transactional data in Azure Cosmos DB.</li> <li><strong>Sales Agent</strong>: Handles actions related to placing orders, storing the transactional data in Azure Cosmos DB.</li> </ol> <p>Each agent transfer initiates a new interaction with <a href="https://learn.microsoft.com/en-us/azure/ai-services/openai/chatgpt-quickstart?tabs=command-line%2Cjavascript-keyless%2Ctypescript-keyless%2Cpython-new&amp;pivots=programming-language-python" target="_blank" rel="noopener">Azure OpenAI&#8217;s chat API</a> using the agent&#8217;s initial prompt. This prevents <a href="https://en.wikipedia.org/wiki/Model_collapse">model collapse</a>, ensuring agents stay coherent. Once an agent&#8217;s scope is reached, it transfers tasks to a new agent better suited to handle them. We can see agent transfers in action when running the command-line app, where different demands trigger quick hand-offs between agents:</p> <p><iframe src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/12/cli.mp4" width="1260" height="720" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p> <p>When the same app is presented to the user without signalling agent transfers, it maintains seamless, accurate, and predictable interaction with the user, while still leveraging the powerful language processing capabilities in Azure OpenAI:</p> <p><iframe src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/12/chatbot.mp4" width="1544" height="1076" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p> <p>Combining vector search with operational transactions enables up-to-date contextual input for chat completion. The product container serves as both an operational data store and a vector store. Inventory updates instantly reflect in vector search, and similarity search results from the <code>product_information</code> function are seamlessly integrated into the chat completion stream.</p> <pre class="prettyprint language-py"><code class="language-py">def product_information(user_prompt): """Provide information about a product based on the user prompt. Takes as input the user prompt as a string.""" # Perform a vector search on the Cosmos DB container and return results to the agent vectors = azure_open_ai.generate_embedding(user_prompt) vector_search_results = vector_search(azure_cosmos_db.products_container_name, vectors) return vector_search_results</code></pre> <p>Go ahead and <a href="https://github.com/AzureCosmosDB/multi-agent-swarm" target="_blank" rel="noopener">try the sample out</a>! Leave a comment to let us know how you get on!</p> <h2>Leave a review</h2> <p>Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we’ll gift you $50. <a href="https://peerspotdotcom.my.site.com/proReviews/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50" target="_blank" rel="noopener">Get started here</a>.</p> <h2>About Azure Cosmos DB</h2> <p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</p> <p><a href="https://cosmos.azure.com/try/" target="_blank" rel="noopener">Try Azure Cosmos DB for free here.</a> To stay in the loop on Azure Cosmos DB updates, follow us on <a href="https://twitter.com/AzureCosmosDB" target="_blank" rel="noopener">X</a>, <a href="https://aka.ms/AzureCosmosDBYouTube" target="_blank" rel="noopener">YouTube</a>, and <a href="https://www.linkedin.com/company/azure-cosmos-db/" target="_blank" rel="noopener">LinkedIn</a>.</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/an-introduction-to-multi-agent-ai-apps-with-azure-cosmos-db-and-azure-openai/">An introduction to Multi-Agent AI apps with Azure Cosmos DB and Azure OpenAI</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/an-introduction-to-multi-agent-ai-apps-with-azure-cosmos-db-and-azure-openai/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <enclosure url="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/12/cli.mp4" length="1526293" type="video/mp4" /> <enclosure url="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/12/chatbot.mp4" length="860405" type="video/mp4" /> </item> <item> <title>Announcing Azure Cosmos DB Integration with Spring AI and Langchain4J!</title> <link>https://devblogs.microsoft.com/cosmosdb/announcing-azure-cosmos-db-integration-with-spring-ai-and-langchain4j/</link> <comments>https://devblogs.microsoft.com/cosmosdb/announcing-azure-cosmos-db-integration-with-spring-ai-and-langchain4j/#respond</comments> <dc:creator><![CDATA[Theo van Kraay]]></dc:creator> <pubDate>Thu, 05 Dec 2024 15:00:11 +0000</pubDate> <category><![CDATA[AI]]></category> <category><![CDATA[Azure Cosmos DB for NoSQL]]></category> <category><![CDATA[Java SDK]]></category> <category><![CDATA[Spring Data]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9205</guid> <description><![CDATA[<p>We’re continuing to simplify AI app development by integrating Azure Cosmos DB’s cost-effective and scalable vector search directly with Spring AI and LangChain4J! These frameworks empower Java developers to efficiently manage fast and accurate data retrieval with Azure Cosmos DB’s scalability and efficient vector indexing and search capabilities, allowing for efficient handling of high-dimensional vectors. [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/announcing-azure-cosmos-db-integration-with-spring-ai-and-langchain4j/">Announcing Azure Cosmos DB Integration with Spring AI and Langchain4J!</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p>We’re continuing to simplify AI app development by integrating <strong>Azure Cosmos DB’s</strong> cost-effective and scalable vector search directly with <a href="https://spring.io/projects/spring-ai" target="_blank" rel="noopener"><strong>Spring AI</strong></a> and <a href="https://docs.langchain4j.dev/" target="_blank" rel="noopener"><strong>LangChain4J</strong></a>! These frameworks empower Java developers to efficiently manage fast and accurate data retrieval with Azure Cosmos DB’s scalability and efficient <a href="https://learn.microsoft.com/azure/cosmos-db/nosql/vector-search" target="_blank" rel="noopener">vector indexing and search</a> capabilities, allowing for efficient handling of high-dimensional vectors. By using Azure Cosmos DB’s vector store, developers can keep vectors directly within their documents, enabling seamless integration with Spring AI or Langchain4J for advanced vector search queries.</p> <h3>Spring AI vs Langchain4J</h3> <p><a href="https://docs.langchain4j.dev/" target="_blank" rel="noopener">Langchain4J</a> and <a href="https://docs.spring.io/spring-ai/reference/index.html" target="_blank" rel="noopener">Spring AI</a> are both Java frameworks tailored for integrating AI capabilities into applications, but differ slightly in focus and approach. Both are designed to work seamlessly with large language models (LLMs), emphasizing modularity for constructing complex AI workflows like chaining prompts, handling memory, and managing vector stores. <strong>Spring AI</strong> is also a Spring ecosystem extension which brings along <a href="https://spring.io/projects/spring-boot" target="_blank" rel="noopener">Spring Boot’s</a> familiar configurations for ease of use. While Langchain4J excels in flexibility and advanced LLM-specific tools, Spring AI leverages <a href="https://spring.io/projects/spring-framework" target="_blank" rel="noopener">Spring&#8217;s robust framework</a> ecosystem for quick, standardized integration, making it ideal for developers already invested in Spring-based projects, such as Azure Cosmos DB&#8217;s existing <a href="https://learn.microsoft.com/java/api/overview/azure/spring-data-cosmos-readme?view=azure-java-stable" target="_blank" rel="noopener">Spring Data Module</a>.</p> <h3>Easy AI app development with Spring AI</h3> <p>The below examples are taken from the full sample <a href="https://github.com/Azure-Samples/cosmosdb-spring-ai-sample" target="_blank" rel="noopener">here</a>. Creating an AI Chat Bot with <a href="https://learn.microsoft.com/azure/cosmos-db/gen-ai/rag" target="_blank" rel="noopener">Retrieval Augmented Generation (RAG)</a> using your own private data is easy in Spring AI once you have imported the required libraries:</p> <pre class="prettyprint language-xml"><code class="language-xml">&lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.ai&lt;/groupId&gt; &lt;artifactId&gt;spring-ai-core&lt;/artifactId&gt; &lt;version&gt;1.0.0-M4&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.ai&lt;/groupId&gt; &lt;artifactId&gt;spring-ai-azure-cosmos-db-store-spring-boot-starter&lt;/artifactId&gt; &lt;version&gt;1.0.0-M4&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.ai&lt;/groupId&gt; &lt;artifactId&gt;spring-ai-spring-boot-autoconfigure&lt;/artifactId&gt; &lt;version&gt;1.0.0-M4&lt;/version&gt; &lt;scope&gt;compile&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.ai&lt;/groupId&gt; &lt;artifactId&gt;spring-ai-azure-openai&lt;/artifactId&gt; &lt;version&gt;1.0.0-M4&lt;/version&gt; &lt;scope&gt;compile&lt;/scope&gt; &lt;/dependency&gt; &lt;/dependencies&gt;</code></pre> <p>You can then create a configuration class for Spring AI&#8217;s ChatClient:</p> <pre class="prettyprint language-java"><code class="language-java">package com.microsoft.azure.spring.chatgpt.sample.webapi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.ai.chat.client.ChatClient; @Configuration public class ChatClientConfiguration { private final ChatClient.Builder chatClientBuilder; public ChatClientConfiguration(ChatClient.Builder chatClientBuilder) { this.chatClientBuilder = chatClientBuilder; } @Bean public ChatClient chatClient() { return chatClientBuilder.build(); } }</code></pre> <p>Next, create a custom message class that implements Spring AI&#8217;s Message interface:</p> <pre class="prettyprint language-java"><code class="language-java">package com.microsoft.azure.spring.chatgpt.sample.webapi.models; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.MessageType; import java.util.Map; public class ChatMessage implements Message { private String role; private String content; public ChatMessage(String role, String content) { this.role = role; this.content = content; } @Override public String getContent() { return content; } @Override public Map&lt;String, Object&gt; getMetadata() { return Map.of(); } @Override public MessageType getMessageType() { return MessageType.USER; } }</code></pre> <p>Then, add appropriate configuration in your application.properties file that will be autowired, like below:</p> <pre class="prettyprint language-default"><code class="language-default">spring.ai.vectorstore.cosmosdb.databaseName=cosmosdb spring.ai.vectorstore.cosmosdb.containerName=vectorstore spring.ai.vectorstore.cosmosdb.partitionKeyPath=/id spring.ai.vectorstore.cosmosdb.metadataFields=metadata spring.ai.vectorstore.cosmosdb.vectorStoreThoughput=1000 spring.ai.vectorstore.cosmosdb.endpoint=${COSMOSDB_AI_ENDPOINT} spring.ai.vectorstore.cosmosdb.key=${COSMOSDB_AI_KEY} spring.ai.azure.openai.api-key=${AZURE_OPENAI_APIKEY} spring.ai.azure.openai.endpoint=${AZURE_OPENAI_ENDPOINT} spring.ai.azure.openai.embedding.options.deployment-name=text-embedding-ada-002</code></pre> <p>Finally, you can autowire VectorStore and ChatClient, and then do chat completion with RAG in one simple method within your controller. Chat completion is handled by your chatClient, and RAG is handled by calling the QuestionAnswerAdvisor on the chatClient. Here, we also add a custom method to transform the incoming messages into the expected ChatMessage format we defined above. Find out more about the powerful <a href="https://docs.spring.io/spring-ai/reference/api/chatclient.html" target="_blank" rel="noopener">Spring AI Chat Client API</a> here.</p> <pre class="prettyprint language-java"><code class="language-java">package com.microsoft.azure.spring.chatgpt.sample.webapi.controllers; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.microsoft.azure.spring.chatgpt.sample.webapi.models.ChatMessage; import io.micrometer.observation.ObservationRegistry; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.client.advisor.QuestionAnswerAdvisor; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.stream.Collectors; import java.util.stream.StreamSupport; @RestController @RequestMapping("/chat") public class ChatController { private static final String prompt = """ Context information is below. --------------------- %s --------------------- Given the context information and not prior knowledge, answer the question: %s """; @Autowired @Lazy private VectorStore vectorStore; @Autowired @Lazy private ChatClient chatClient; @PostMapping("/completions") public String generation(@RequestBody String userInput) throws JsonProcessingException { List&lt;Message&gt; messages = getMessages(userInput); String response = this.chatClient.prompt(prompt) .user(messages.get(0).getContent()) .messages(messages) .advisors(new QuestionAnswerAdvisor(vectorStore, SearchRequest.query(messages.get(0).getContent()).withTopK(5))) .call() .content(); return response; } @Bean public ObservationRegistry observationRegistry() { return ObservationRegistry.create(); } public List&lt;Message&gt; getMessages(String text) throws JsonProcessingException { ObjectMapper objectMapper = new ObjectMapper(); return StreamSupport.stream(objectMapper.readTree(text).get("messages").spliterator(), false) .map(node -&gt; new ChatMessage(node.get("role").asText(), node.get("content").asText())) .collect(Collectors.toList()); } }</code></pre> <h3>Spring AI Integration &#8211; features and benefits</h3> <p>The Spring AI integration for Azure Cosmos DB brings some powerful benefits. Here are just a few:</p> <h4>Efficient batch loading of vector embeddings</h4> <div class="paragraph"> <p>When working with vector stores, it’s often necessary to embed large numbers of documents. While it might seem straightforward to make a single call to embed all documents at once, this approach can lead to issues. Embedding models process text as tokens and have a maximum token limit, often referred to as the context window size. This limit restricts the amount of text that can be processed in a single embedding request. Attempting to embed too many tokens in one call can result in errors or truncated embeddings. To address this token limit, Spring AI implements a batching strategy. This approach breaks down large sets of documents into smaller batches that fit within the embedding model’s maximum context window. Batching not only solves the token limit issue but can also lead to improved performance and more efficient use of API rate limits. In Azure Cosmos DB&#8217;s <a href="https://docs.spring.io/spring-ai/reference/api/vectordbs/azure-cosmos-db.html" target="_blank" rel="noopener">vector store implementation for Spring AI</a>, both bulk execution in the Java SDK and batching strategy in Spring AI are implemented, leading to efficient loading for large volumes of vectors. The above mentioned <a href="https://github.com/Azure-Samples/cosmosdb-spring-ai-sample" target="_blank" rel="noopener">sample</a> includes a <a href="https://github.com/Azure-Samples/cosmosdb-spring-ai-sample/blob/main/src/main/java/com/microsoft/azure/spring/chatgpt/sample/cli/CliApplication.java" target="_blank" rel="noopener">CLI application</a> for loading of vectors.</p> <h4>Vector indexing with DiskANN</h4> <div class="sectionbody"> <div class="paragraph"> <p>In Spring AI for Azure Cosmos DB, vector searches will create and leverage DiskANN indexes to ensure optimal performance for similarity queries. DiskANN (Disk-based Approximate Nearest Neighbor Search) is an innovative technology used in Azure Cosmos DB to enhance the performance of vector searches. It enables efficient and scalable similarity searches across high-dimensional data by indexing embeddings stored in Cosmos DB.</p> </div> <div class="paragraph"> <p>DiskANN provides the following benefits:</p> </div> <div class="ulist"> <ul> <li><strong>Efficiency</strong>: By utilizing disk-based structures, DiskANN significantly reduces the time required to find nearest neighbors compared to traditional methods.</li> <li><strong>Scalability</strong>: It can handle large datasets that exceed memory capacity, making it suitable for various applications, including machine learning and AI-driven solutions.</li> <li><strong>Low Latency</strong>: DiskANN minimizes latency during search operations, ensuring that applications can retrieve results quickly even with substantial data volumes.</li> </ul> </div> <div class="paragraph"> <h4 id="page-title" class="page">Function Calling API</h4> <p>You can register custom Java functions with the <code>ChatClient</code> and have the AI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This allows you to connect the LLM capabilities with external tools and APIs. The AI models are trained to detect when a function should be called and to respond with JSON that adheres to the function signature. Learn more about how function calling works <a href="https://docs.spring.io/spring-ai/reference/api/functions.html" target="_blank" rel="noopener">here</a>.</p> <h3>Langchain4j Integration</h3> <p>We&#8217;ve also integrated Azure Cosmos DB with <a href="https://docs.langchain4j.dev/" target="_blank" rel="noopener">Langchain4J</a>. Take a look at our sample <a href="https://github.com/microsoft/AzureDataRetrievalAugmentedGenerationSamples/tree/main/Java/CosmosDB-NoSQL-Langchain" target="_blank" rel="noopener">here</a> for a quick start!</p> <p><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/12/langchain4j-demo.gif"><img decoding="async" class="alignnone wp-image-9214 size-full" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/12/langchain4j-demo.gif" alt="Image langchain4j demo" width="1280" height="720" /></a></p> </div> </div> </div> <h2>Leave a review</h2> <p>Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we’ll gift you $50. <a href="https://peerspotdotcom.my.site.com/proReviews/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50" target="_blank" rel="noopener">Get started here</a>.</p> <h2>About Azure Cosmos DB</h2> <p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</p> <p><a href="https://cosmos.azure.com/try/" target="_blank" rel="noopener">Try Azure Cosmos DB for free here.</a> To stay in the loop on Azure Cosmos DB updates, follow us on <a href="https://twitter.com/AzureCosmosDB" target="_blank" rel="noopener">X</a>, <a href="https://aka.ms/AzureCosmosDBYouTube" target="_blank" rel="noopener">YouTube</a>, and <a href="https://www.linkedin.com/company/azure-cosmos-db/" target="_blank" rel="noopener">LinkedIn</a>.</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/announcing-azure-cosmos-db-integration-with-spring-ai-and-langchain4j/">Announcing Azure Cosmos DB Integration with Spring AI and Langchain4J!</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/announcing-azure-cosmos-db-integration-with-spring-ai-and-langchain4j/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item> <title>Microsoft Fabric API for GraphQL™ for Azure Cosmos DB Mirroring</title> <link>https://devblogs.microsoft.com/cosmosdb/microsoft-fabric-api-for-graphql-for-azure-cosmos-db-mirroring/</link> <comments>https://devblogs.microsoft.com/cosmosdb/microsoft-fabric-api-for-graphql-for-azure-cosmos-db-mirroring/#respond</comments> <dc:creator><![CDATA[Rodrigo Souza]]></dc:creator> <pubDate>Tue, 03 Dec 2024 17:00:35 +0000</pubDate> <category><![CDATA[Azure Cosmos DB for NoSQL]]></category> <guid isPermaLink="false">https://devblogs.microsoft.com/cosmosdb/?p=9197</guid> <description><![CDATA[<p>The Microsoft Fabric API for GraphQL™ provides a data access layer that enables you to query multiple data sources quickly and efficiently using a widely adopted and familiar API technology. This API abstracts the specifics of backend data sources, allowing you to focus on your application&#8217;s logic and deliver all the data a client needs [&#8230;]</p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/microsoft-fabric-api-for-graphql-for-azure-cosmos-db-mirroring/">Microsoft Fabric API for GraphQL™ for Azure Cosmos DB Mirroring</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></description> <content:encoded><![CDATA[<p><span data-contrast="auto">The Microsoft Fabric API for GraphQL<img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> provides a data access layer that enables you to query multiple data sources quickly and efficiently using a widely adopted and familiar API technology. This API abstracts the specifics of backend data sources, allowing you to focus on your application&#8217;s logic and deliver all the data a client needs in a single call.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p> <p><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto"> Microsoft Fabric&#8217;s Mirroring enables you to seamlessly integrate your existing Azure Cosmos DB data with the rest of your data in Microsoft Fabric, eliminating the need for ETL. You can replicate your Azure Cosmos DB data continuously into OneLake in near real-time without affecting the performance of your transactional workloads. Click </span><a href="https://learn.microsoft.com/fabric/database/mirrored-database/azure-cosmos-db"><span data-contrast="none">here</span></a><span data-contrast="auto"> for more information. This blog post shows you how to integrate these two technologies and build near real-time analytical applications.</span><span data-ccp-props="{}"> </span></p> <p><span data-ccp-props="{}"> </span></p> <h2 aria-level="2"><span data-contrast="none">Use Cases Between GraphQL and Azure Cosmos DB in Microsoft Fabric</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2> <p><span data-contrast="auto"> Integrating the Microsoft Fabric API for GraphQL<img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> with mirrored Azure Cosmos DB data empowers developers to build robust real-time analytical applications. GraphQL enables efficient querying by allowing developers to retrieve only the required data from multiple sources, including mirrored data in OneLake, while abstracting backend complexities. This streamlined approach is perfect for applications demanding up-to-date insights, such as live dashboards, analytics platforms, and interactive user interfaces. By mirroring Azure Cosmos DB data into Microsoft Fabric, the system ensures near real-time synchronization, keeping data current without affecting transactional workload performance. This synergy lets developers concentrate on creating responsive, scalable applications that deliver actionable insights and seamless user experiences.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p> <h2><span data-contrast="none">How to mirror your Azure Cosmos DB data into Microsoft Fabric</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2> <p><span data-contrast="auto">To mirror a database, it should already be provisioned in Azure, and continuous backup on the account is a prerequisite. Each database can be mirrored individually. And you can mirror the same database multiple times within the same workspace. </span><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">To start mirroring your Azure Cosmos DB database into Microsoft Fabric, navigate to the Fabric portal, open an existing workspace or create a new one, select </span><b><span data-contrast="auto">Create</span></b><span data-contrast="auto">, locate the </span><b><span data-contrast="auto">Data Warehouse</span></b><span data-contrast="auto"> section, and then select </span><b><span data-contrast="auto">Mirrored Azure Cosmos DB</span></b> <b><span data-contrast="auto">(preview)</span></b><span data-contrast="auto">. For more details, click </span><a href="https://learn.microsoft.com/fabric/database/mirrored-database/azure-cosmos-db-tutorial#create-a-mirrored-database" target="_blank" rel="noopener"><span data-contrast="none">here</span></a><span data-contrast="auto">.</span><span data-ccp-props="{}"> </span></p> <p>&nbsp;</p> <h2 aria-level="2"><span data-contrast="none">How to query your mirrored data with GraphQL</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2> <p><span data-ccp-props="{}"> </span><span data-contrast="auto">Your Azure Cosmos DB data is mirrored in the open-source delta format and automatically made available to all analytical engines on Fabric through a SQL Analytics Endpoint. </span><span data-ccp-props="{}"> </span></p> <p><span data-ccp-props="{}"> </span><span data-contrast="auto">To connect your mirrored Azure Cosmos DB data to the Microsoft Fabric API for GraphQL<img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />, you have two main options. The first is to use the SQL Analytics Endpoint provided by Microsoft Fabric for the mirrored database. This endpoint allows you to execute SQL queries against your mirrored data in OneLake. By integrating this endpoint with your GraphQL queries and mutations, you can directly interact with the mirrored data using familiar SQL syntax within your GraphQL APIs, enabling efficient data retrieval and manipulation.</span><span data-ccp-props="{}"> </span></p> <p><span data-ccp-props="{}"> </span><span data-contrast="auto">The second option involves attaching the mirrored database to a Fabric Warehouse. By doing this, you integrate your Azure Cosmos DB data into the data warehousing environment of Microsoft Fabric. Your GraphQL queries and mutations can then interact with the warehouse data, providing a seamless way to access and analyze large volumes of data in near real-time.</span><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">Both methods enable you to efficiently connect and query your mirrored Cosmos DB data through GraphQL. This allows you to choose the approach that best fits your application&#8217;s architecture and performance requirements, facilitating the development of responsive and scalable applications.</span><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">For more information on how to query mirrored Cosmos DB data in Fabric, please visit </span><a href="https://learn.microsoft.com/fabric/data-warehouse/query-warehouse" target="_blank" rel="noopener"><span data-contrast="none">Query the SQL analytics endpoint or Warehouse in Microsoft Fabric</span></a><span data-contrast="auto">.</span><span data-ccp-props="{}"> </span></p> <h2 aria-level="2"><span data-contrast="none">Nested Data</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2> <p><span data-contrast="auto">A common issue with mirrored data in Fabric is that JSON data gets replicated as strings. This is less than ideal, since applications expect properly formatted JSON for processing. To address this, you use views and expose the nested data as columns. </span><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">For this, we need to use the </span><a href="https://learn.microsoft.com/sql/t-sql/functions/openjson-transact-sql?view=sql-server-ver16" target="_blank" rel="noopener"><span data-contrast="none">OPENJSON</span></a><span data-contrast="auto"> function and the </span><a href="https://learn.microsoft.com/sql/t-sql/queries/from-transact-sql?view=sql-server-ver16#left_table_source--cross--outer--apply-right_table_source" target="_blank" rel="noopener"><span data-contrast="none">CROSS APPLY</span></a><span data-contrast="auto"> operator in the view definition. </span><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">Here’s an example of a view that flattens mirrored JSON data into columns: </span><span data-ccp-props="{}"> </span></p> <p><figure id="attachment_9199" aria-labelledby="figcaption_attachment_9199" class="wp-caption alignnone" ><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150725.png"><img decoding="async" class="size-full wp-image-9199" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150725.png" alt="Nested data view" width="1745" height="428" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150725.png 1745w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150725-300x74.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150725-1024x251.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150725-768x188.png 768w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150725-1536x377.png 1536w" sizes="(max-width: 1745px) 100vw, 1745px" /></a><figcaption id="figcaption_attachment_9199" class="wp-caption-text">This view shows how to read nested data</figcaption></figure></p> <h2 aria-level="2"><span data-contrast="none">How this is used from within an application</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2> <p><span data-ccp-props="{}"> </span><span data-contrast="auto">Attaching the SQL Analytics endpoint or Warehouse to an API for GraphQL item, and choosing the vConsolidatedIoTData view in the object picker, we can very quickly craft a GraphQL request that returns the data that was formatted as columns by the view:</span><span data-ccp-props="{}"> </span></p> <p><figure id="attachment_9200" aria-labelledby="figcaption_attachment_9200" class="wp-caption alignnone" ><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150816.png"><img decoding="async" class="size-full wp-image-9200" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150816.png" alt="GQL sample" width="828" height="1144" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150816.png 828w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150816-217x300.png 217w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150816-741x1024.png 741w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150816-768x1061.png 768w" sizes="(max-width: 828px) 100vw, 828px" /></a><figcaption id="figcaption_attachment_9200" class="wp-caption-text">GQL sample</figcaption></figure></p> <p><span data-contrast="auto">This request can now be used directly in your application, and GraphQL will return correctly formatted JSON back to the requesting client application.</span><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">API for GraphQL helps you create code for your application quickly and simply, with the </span><a href="https://learn.microsoft.com/fabric/data-engineering/api-graphql-editor#generate-code" target="_blank" rel="noopener"><span data-contrast="none">Generate</span></a><span data-contrast="auto"> code functionality in the editor. Simply click on the Generate code button on your editor, and pick from a list of languages to use in your app. </span><span data-ccp-props="{}"> </span></p> <p><figure id="attachment_9201" aria-labelledby="figcaption_attachment_9201" class="wp-caption alignnone" ><a href="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150832.png"><img decoding="async" class="size-full wp-image-9201" src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150832.png" alt="Python sample" width="1239" height="972" srcset="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150832.png 1239w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150832-300x235.png 300w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150832-1024x803.png 1024w, https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2024/11/Screenshot-2024-11-26-150832-768x602.png 768w" sizes="(max-width: 1239px) 100vw, 1239px" /></a><figcaption id="figcaption_attachment_9201" class="wp-caption-text">Python sample</figcaption></figure></p> <p><span data-contrast="auto">For more information on how to leverage Fabric API for GraphQL in your applications, please visit </span><a href="https://learn.microsoft.com/fabric/data-engineering/connect-apps-api-graphql" target="_blank" rel="noopener"><span data-contrast="none">Connect applications to Fabric API for GraphQL</span></a><span data-contrast="auto">.</span><span data-ccp-props="{}"> </span></p> <h2 aria-level="2"><span data-contrast="none">Conclusion</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2> <p><span data-ccp-props="{}"> </span><span data-contrast="auto">In conclusion, integrating Microsoft Fabric API for GraphQL<img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> with mirrored Azure Cosmos DB data offers a robust solution for building near real-time analytical applications. By harnessing GraphQL&#8217;s efficient querying capabilities and the seamless data integration provided by Microsoft Fabric, developers can create responsive and scalable applications with ease. Whether you choose to connect through the SQL Analytics Endpoint or attach the mirrored database to a Fabric Warehouse, this approach enables efficient access to up-to-date data, empowering you to deliver rich insights and exceptional user experiences.</span><span data-ccp-props="{}"> </span></p> <p><span data-ccp-props="{}"> </span></p> <h2 aria-level="2"><span data-contrast="none">More Resources</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2> <p><span data-contrast="auto">Here are some more resources that you may find interesting:</span><span data-ccp-props="{}"> </span></p> <p><a href="https://learn.microsoft.com/fabric/data-engineering/api-graphql-overview" target="_blank" rel="noopener"><span data-contrast="none">API for GraphQL Overview and Documentation</span></a><span data-ccp-props="{}"> </span></p> <p><a href="https://learn.microsoft.com/fabric/database/mirrored-database/azure-cosmos-db" target="_blank" rel="noopener"><span data-contrast="none">Mirroring Azure Cosmos DB (Preview)</span></a><span data-ccp-props="{}"> </span></p> <h2><span data-ccp-props="{}"> </span><b><span data-contrast="none">Leave a review</span></b><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335557856&quot;:2039583,&quot;335559738&quot;:960,&quot;335559739&quot;:360}"> </span></h2> <p><span data-contrast="none">Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we’ll gift you $50. </span><a href="https://peerspotdotcom.my.site.com/proReviews/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50"><span data-contrast="none">Get started here</span></a><span data-contrast="none">.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335557856&quot;:2039583,&quot;335559738&quot;:0,&quot;335559739&quot;:360,&quot;335559740&quot;:360}"> </span></p> <h2 aria-level="2"><b><span data-contrast="none">About Azure Cosmos DB</span></b><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335557856&quot;:2039583,&quot;335559738&quot;:960,&quot;335559739&quot;:360}"> </span></h2> <p><span data-contrast="none">Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335557856&quot;:2039583,&quot;335559738&quot;:0,&quot;335559739&quot;:360,&quot;335559740&quot;:360}"> </span></p> <p><a href="https://cosmos.azure.com/try/" target="_blank" rel="noopener"><span data-contrast="none">Try Azure Cosmos DB for free here.</span></a><span data-contrast="none"> To stay in the loop on Azure Cosmos DB updates, follow us on </span><a href="https://twitter.com/AzureCosmosDB" target="_blank" rel="noopener"><span data-contrast="none">X</span></a><span data-contrast="none">, </span><a href="https://aka.ms/AzureCosmosDBYouTube" target="_blank" rel="noopener"><span data-contrast="none">YouTube</span></a><span data-contrast="none">, and </span><a href="https://www.linkedin.com/company/azure-cosmos-db/" target="_blank" rel="noopener"><span data-contrast="none">LinkedIn</span></a><span data-contrast="none">.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335557856&quot;:2039583,&quot;335559738&quot;:0,&quot;335559739&quot;:360,&quot;335559740&quot;:360}"> </span></p> <p>The post <a href="https://devblogs.microsoft.com/cosmosdb/microsoft-fabric-api-for-graphql-for-azure-cosmos-db-mirroring/">Microsoft Fabric API for GraphQL™ for Azure Cosmos DB Mirroring</a> appeared first on <a href="https://devblogs.microsoft.com/cosmosdb">Azure Cosmos DB Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>https://devblogs.microsoft.com/cosmosdb/microsoft-fabric-api-for-graphql-for-azure-cosmos-db-mirroring/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>

Pages: 1 2 3 4 5 6 7 8 9 10