{"id":7330,"date":"2019-08-09T11:30:32","date_gmt":"2019-08-09T18:30:32","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7330"},"modified":"2025-06-13T16:46:33","modified_gmt":"2025-06-13T23:46:33","slug":"couchbase-brings-multi-document-acid-transactions-to-json-database","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/","title":{"rendered":"Couchbase Supports Multi-Document ACID Transactions"},"content":{"rendered":"<p><span style=\"font-weight: 400\">I\u2019m excited to announce support of \u201cdistributed multi-document ACID transactions\u201d in <\/span><a href=\"https:\/\/couchbase.com\/downloads?family=server&amp;product=couchbase-server-developer\"><span style=\"font-weight: 400\">Couchbase Server 6.5<\/span><\/a><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Whether you\u2019re writing a new application or modernizing an existing relational application, with <\/span><a href=\"https:\/\/www.couchbase.com\/transactions\/\"><span style=\"font-weight: 400\">transactions<\/span><\/a><span style=\"font-weight: 400\"> in Couchbase 6.5 your work is easier than ever before.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Why distributed ACID Transactions?<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Couchbase has always supported single document ACID transactions. These are the bread and butter of transactions in a document model database and cover more than 95% of use cases. There are also business-critical use cases where multi-document ACID transactions are needed, and until now our customers have modeled these cases at the application level. With our new multi-document ACID transaction feature, you can let the database layer handle it for you instead. This relieves the application tier from managing all the recovery semantics of system failures during a multi-document update. The database tier now offers ACID transactions across multiple documents, multiple buckets, and multiple nodes.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Here\u2019s how simple the code is:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-7504 size-large aligncenter\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/ACID-Transactions-Code-Sample@2x-1024x333.png\" alt=\"\" width=\"900\" height=\"293\" \/><\/p>\n<p><span style=\"font-weight: 400\">All work inside a transaction is done using standard Couchbase SDK APIs with access to the programmatic prowess of the underlying platform. Error handling is simplified with built-in retries for the many failures that are bound to occur in a highly concurrent distributed system.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">ACID guarantees<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Let\u2019s look at how we address ACID transaction guarantees in our distributed database that\u2019s built on a shared-nothing architecture.<\/span><\/p>\n<h3><b>A<\/b><span style=\"font-weight: 400\">tomicity<\/span><\/h3>\n<p><span style=\"font-weight: 400\">With this release we extend our atomicity guarantees from a single document to multiple documents across multiple nodes. Now you have all-or-nothing semantics for your standard application where you\u2019re updating several documents at once. Within the transaction boundary, Couchbase will change all the impacted documents or none at all. <\/span><span style=\"font-weight: 400\">This multi-document atomicity is critical for application scenarios such as multi-asset coordination and microservice sagas orchestration \u2013 and now you can rely on Couchbase to provide it.<\/span><\/p>\n<h3><b>C<\/b><span style=\"font-weight: 400\">onsistency and <\/span><b>I<\/b><span style=\"font-weight: 400\">solation<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Couchbase has always provided strong consistency on reads from key-value APIs and from N1QL with GSI (using request_plus). Now we\u2019ve extended that consistency to multi-document transactions as well. Of course, any discussion of multi-document consistency is incomplete without a description of the isolation levels supported. Couchbase Server 6.5 provides a \u201cRead Committed\u201d level of isolation. According to ANSI standards, the <\/span><span style=\"font-weight: 400\">Read Committed isolation level guarantees that any data read is committed at the moment it is read. It also requires that no uncommitted \u201cdirty\u201d data is ever read. Couchbase transactions ensure that you always get Read Committed semantics regardless of how the read is done \u2013 be it through the key-value interface, a N1QL query, an XDCR cluster, analytics, mobile, or an eventing function.<\/span><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<h3><b>D<\/b><span style=\"font-weight: 400\">urability<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Transactions are layered over a new synchronous replication mechanism in Couchbase Server 6.5 to provide durability guarantees. Synchronous replication ensures that a write is not visible until it is durably replicated and\/or persisted. Once a transaction is committed, all the updates in the transaction are guaranteed to be durable, regardless of where the documents reside in the cluster.<\/span><\/p>\n<p><span style=\"font-weight: 400\">With synchronous replication, Couchbase now makes it easier to use tunable durability with better resiliency. Tunability of durability comes either from using replication as a strategy for durability, or from using persistence for durability.<\/span><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">The new replication mechanism is undergoing comprehensive in-house testing using <\/span><a href=\"https:\/\/jepsen.io\/\"><span style=\"font-weight: 400\">Jepsen<\/span><\/a><span style=\"font-weight: 400\">, a test framework that subjects distributed systems to multiple concurrent failures and checks for data consistency under these failures. The results of this testing will be made public.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Highly available and scalable transactions<\/span><\/h2>\n<p><span style=\"font-weight: 400\">As a distributed scale-out data platform, Couchbase has a long-standing distinction of being a leader in scalability, performance, and high availability. With multi-document distributed transactions we remain true to those tenets. We\u2019re not introducing any global schedulers or global coordination, and don\u2019t rely on finely tuned time servers.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">By using our smart clients, we avoid the need for a single transaction monitor or distributed lock manager. <\/span><span style=\"font-weight: 400\">Historically, transactions are implemented using a 2PC. In a distributed scale-out database 2PC is too slow, induces distributed deadlocks, and most importantly introduces SPOF. In our implementation, we\u2019ve taken a different approach.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Each transaction is attached to some application logic in the smart clients. As the transaction is executed, the smart clients track the transaction state and determine whether to proceed with the transaction. If the system state does not match with the smart client transaction state, the smart client will automatically unwind the transaction state and retry the application logic. Because smart clients are aware of the transaction state, this eliminates the availability and scalability limitations of 2PC protocol.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Further, in databases that are sharded, the scale and performance limitations of 2PC are traditionally overcome by offering the transaction guarantees in a single shard. That requires a pre-partitioning of data into a single shard. But requiring manual sharding of data is also a well-documented issue that helped precipitate the entire NoSQL industry. With our architecture, <\/span><span style=\"font-weight: 400\">transactions are partition agnostic and don&#8217;t require any special handling or manipulation of data placements. Basically, the transaction semantics are honored for any document no matter where it physically resides in the cluster.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Pay the price only when you need it<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Last but not least amongst the virtues of Couchbase ACID transactions is the fact that you don\u2019t pay any performance penalty except when you use them. You can interleave operations that require strong ACID guarantees with those that don\u2019t to get the best of both worlds: the performance and scale of a NoSQL system, plus the transactional guarantees of a traditional database. This gives applications the power to decide when to pay the transaction cost rather than having the database impose it unconditionally for every operation.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Conclusion<\/span><\/h2>\n<p><span style=\"font-weight: 400\">This combination of performance at scale, availability, data model flexibility of JSON, programming power of SQL, and ACID transaction guarantees make Couchbase very empowering for modern applications. If your application requires what NoSQL and Couchbase provide, you no longer need a separate system to achieve the same ACID semantics you\u2019re used to in relational databases.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Next steps<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Couchbase Server 7.0 Beta is available for download. There are additional blogs and documentation published by the Couchbase team to dive deeper into Couchbase ACID transactions. I encourage you to try it out and we look forward to your feedback!<\/span><\/p>\n<p><!--more--><\/p>\n<p><i><span style=\"font-weight: 400\">Download<\/span><\/i><\/p>\n<p><a href=\"https:\/\/couchbase.com\/downloads?family=server&amp;product=couchbase-server-developer\"><span style=\"font-weight: 400\">Download Couchbase Server 6.5<\/span><\/a><\/p>\n<p><i><span style=\"font-weight: 400\">Documentation<\/span><\/i><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/learn\/data\/distributed-acid-transactions.html\"><span style=\"font-weight: 400\">Couchbase Transactions 6.5 Documentation<\/span><\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/java-sdk\/3.0\/howtos\/distributed-acid-transactions-from-the-sdk.html\"><span style=\"font-weight: 400\">Couchbase Transactions 6.5 How to Guide for SDKs<\/span><\/a><\/p>\n<p><i><span style=\"font-weight: 400\">Blogs\u00a0<\/span><\/i><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/distributed-multi-document-acid-transactions-in-couchbase\"><span style=\"font-weight: 400\">Understanding Distributed Multi-Document ACID Transactions in Couchbase<\/span><\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/couchbase-transactions-java-api\/\"><span style=\"font-weight: 400\">Intro to Couchbase Transactions Java API [Video]<\/span><\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/announcing-couchbase-server-6-5-0-whats-new-and-improved\/\"><span style=\"font-weight: 400\">Announcing Couchbase Server 6.5 \u2013 What\u2019s New and Improved<\/span><\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/tag\/6-5\/\"><b>All 6.5 Blogs<\/b><\/a><\/p>\n<p><strong><a href=\"https:\/\/www.couchbase.com\/downloads\/\">Download Couchbase 7.0 Beta<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019m excited to announce support of \u201cdistributed multi-document ACID transactions\u201d in Couchbase Server 6.5.\u00a0 Whether you\u2019re writing a new application or modernizing an existing relational application, with transactions in Couchbase 6.5 your work is easier than ever before.\u00a0 Why distributed [&hellip;]<\/p>\n","protected":false},"author":2552,"featured_media":10532,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,2396],"tags":[2378,9499],"ppma_author":[9054],"class_list":["post-7330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-transactions","tag-6-5","tag-acid-transactions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Brings Multi-Document ACID Transactions to JSON Database<\/title>\n<meta name=\"description\" content=\"Let\u2019s look at how we address ACID guarantees in Couchbase \u2013 a distributed database that\u2019s built on a shared-nothing architecture.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Supports Multi-Document ACID Transactions\" \/>\n<meta property=\"og:description\" content=\"Let\u2019s look at how we address ACID guarantees in Couchbase \u2013 a distributed database that\u2019s built on a shared-nothing architecture.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-09T18:30:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-13T23:46:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1722\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ravi Mayuram, CTO and SVP, Products &amp; Engineering\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Transactions-1-1.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ravi Mayuram, CTO and SVP, Products &amp; Engineering\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/\"},\"author\":{\"name\":\"Ravi Mayuram, SVP, Products and Engineering and CTO\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ea7b08d67a2a32cbf1ca959538dc7640\"},\"headline\":\"Couchbase Supports Multi-Document ACID Transactions\",\"datePublished\":\"2019-08-09T18:30:32+00:00\",\"dateModified\":\"2025-06-13T23:46:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/\"},\"wordCount\":1078,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg\",\"keywords\":[\"6.5\",\"ACID transactions\"],\"articleSection\":[\"Couchbase Server\",\"Transactions\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/\",\"name\":\"Couchbase Brings Multi-Document ACID Transactions to JSON Database\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg\",\"datePublished\":\"2019-08-09T18:30:32+00:00\",\"dateModified\":\"2025-06-13T23:46:33+00:00\",\"description\":\"Let\u2019s look at how we address ACID guarantees in Couchbase \u2013 a distributed database that\u2019s built on a shared-nothing architecture.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg\",\"width\":2560,\"height\":1722,\"caption\":\"Hands of Person shopping in Internet making instant Mobile Telephone Payment Transaction\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Supports Multi-Document ACID Transactions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ea7b08d67a2a32cbf1ca959538dc7640\",\"name\":\"Ravi Mayuram, SVP, Products and Engineering and CTO\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4cad16564ab060577e484f3ba3a32f52\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/ravi-mayuram-couchbase-cto-svp-engineering.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/ravi-mayuram-couchbase-cto-svp-engineering.jpeg\",\"caption\":\"Ravi Mayuram, SVP, Products and Engineering and CTO\"},\"description\":\"Ravi Mayuram is responsible for product development and delivery of Couchbase NoSQL offerings. He comes to Couchbase from Oracle where he was a senior director of engineering leading innovations in the areas of recommender systems and social graph, search and analytics, and lightweight client frameworks. He was also responsible for kickstarting the cloud collaboration platform. Previously in his career, Ravi has held senior technical and management positions at BEA, Siebel, Informix and HP in addition to couple of start ups including BroadBand office, a Kleiner Perkins funded venture. Ravi holds a MS in Mathematics from University of Delhi.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/ravi-mayuram\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Brings Multi-Document ACID Transactions to JSON Database","description":"Let\u2019s look at how we address ACID guarantees in Couchbase \u2013 a distributed database that\u2019s built on a shared-nothing architecture.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/","og_locale":"en_US","og_type":"article","og_title":"Couchbase Supports Multi-Document ACID Transactions","og_description":"Let\u2019s look at how we address ACID guarantees in Couchbase \u2013 a distributed database that\u2019s built on a shared-nothing architecture.","og_url":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-08-09T18:30:32+00:00","article_modified_time":"2025-06-13T23:46:33+00:00","og_image":[{"width":2560,"height":1722,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg","type":"image\/jpeg"}],"author":"Ravi Mayuram, CTO and SVP, Products &amp; Engineering","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Transactions-1-1.jpg","twitter_misc":{"Written by":"Ravi Mayuram, CTO and SVP, Products &amp; Engineering","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/"},"author":{"name":"Ravi Mayuram, SVP, Products and Engineering and CTO","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ea7b08d67a2a32cbf1ca959538dc7640"},"headline":"Couchbase Supports Multi-Document ACID Transactions","datePublished":"2019-08-09T18:30:32+00:00","dateModified":"2025-06-13T23:46:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/"},"wordCount":1078,"commentCount":6,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg","keywords":["6.5","ACID transactions"],"articleSection":["Couchbase Server","Transactions"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/","name":"Couchbase Brings Multi-Document ACID Transactions to JSON Database","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg","datePublished":"2019-08-09T18:30:32+00:00","dateModified":"2025-06-13T23:46:33+00:00","description":"Let\u2019s look at how we address ACID guarantees in Couchbase \u2013 a distributed database that\u2019s built on a shared-nothing architecture.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/GettyImages-513382230-scaled.jpg","width":2560,"height":1722,"caption":"Hands of Person shopping in Internet making instant Mobile Telephone Payment Transaction"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-brings-multi-document-acid-transactions-to-json-database\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Supports Multi-Document ACID Transactions"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ea7b08d67a2a32cbf1ca959538dc7640","name":"Ravi Mayuram, SVP, Products and Engineering and CTO","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4cad16564ab060577e484f3ba3a32f52","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/ravi-mayuram-couchbase-cto-svp-engineering.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/ravi-mayuram-couchbase-cto-svp-engineering.jpeg","caption":"Ravi Mayuram, SVP, Products and Engineering and CTO"},"description":"Ravi Mayuram is responsible for product development and delivery of Couchbase NoSQL offerings. He comes to Couchbase from Oracle where he was a senior director of engineering leading innovations in the areas of recommender systems and social graph, search and analytics, and lightweight client frameworks. He was also responsible for kickstarting the cloud collaboration platform. Previously in his career, Ravi has held senior technical and management positions at BEA, Siebel, Informix and HP in addition to couple of start ups including BroadBand office, a Kleiner Perkins funded venture. Ravi holds a MS in Mathematics from University of Delhi.","url":"https:\/\/www.couchbase.com\/blog\/author\/ravi-mayuram\/"}]}},"authors":[{"term_id":9054,"user_id":2552,"is_guest":0,"slug":"ravi-mayuram","display_name":"Ravi Mayuram, CTO and SVP, Products &amp; Engineering","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/ravi-mayuram-couchbase-cto-svp-engineering.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/ravi-mayuram-couchbase-cto-svp-engineering.jpeg"},"author_category":"","last_name":"Mayuram, CTO and SVP, Products & Engineering","first_name":"Ravi","job_title":"","user_url":"","description":"As Senior Vice President of Engineering and CTO, Ravi Mayuram is responsible for product development and delivery delivery of the Couchbase Data Platform, which includes Couchbase Server and Couchbase Mobile. He came to Couchbase from Oracle, where he served as senior director of engineering and led innovation in the areas of recommender systems and social graph, search and analytics, and lightweight client frameworks. Also while at Oracle, Ravi was responsible for kickstarting the cloud collaboration platform. Previously in his career, Ravi has held senior technical and management positions at BEA, Siebel, Informix and HP in addition to couple of startups including BroadBand Office, a Kleiner Perkins funded venture. Ravi holds a Master of Science degree in Mathematics from University of Delhi."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/7330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/2552"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=7330"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/7330\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/10532"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=7330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=7330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=7330"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=7330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}