diff --git a/src/service.ts b/src/service.ts
index c6094b7a99cad5f93b6c5f13e3e190acc21a31be..448d534c48a3f771e9f798ea8e5b6d49cc0f1faf 100644
--- a/src/service.ts
+++ b/src/service.ts
@@ -27,6 +27,7 @@ import express from "express";
 import { makeExecutableSchema } from "graphql-tools";
 import Nano, { MaybeDocument } from "nano";
 import { OpenAPI, useSofa } from "sofa-api";
+import { crdtlib } from "@concordant/c-crdtlib";
 
 // http://USERNAME:PASSWORD/URL:PORT
 const dbUrl = process.env.COUCHDB_URL || "http://localhost:5984/";
@@ -225,7 +226,12 @@ function updateObject(dbName: string, docName: string, document: string) {
         .use(dbName)
         .get(docName)
         .then((body) => {
-          const newDocument = JSON.parse(document);
+          const CRDT = crdtlib.crdt.DeltaCRDT.Companion.fromJson(document);
+          const bodyCRDT = crdtlib.crdt.DeltaCRDT.Companion.fromJson(
+            JSON.stringify(body)
+          );
+          bodyCRDT.merge(CRDT);
+          const newDocument = JSON.parse(bodyCRDT.toJson());
           newDocument._rev = body._rev;
           client.db
             .use(dbName)