diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs.h
--- a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs.h
+++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs.h
@@ -1,5 +1,6 @@
 #pragma once
 
+#include "MessageSpecs/AddMembersMessageSpec.h"
 #include "MessageSpecs/ChangeRoleMessageSpec.h"
 #include "MessageSpecs/ChangeSettingsMessageSpec.h"
 #include "MessageSpecs/CreateEntryMessageSpec.h"
@@ -9,9 +10,12 @@
 #include "MessageSpecs/DeleteEntryMessageSpec.h"
 #include "MessageSpecs/EditEntryMessageSpec.h"
 #include "MessageSpecs/EditMessageSpec.h"
+#include "MessageSpecs/JoinThreadMessageSpec.h"
+#include "MessageSpecs/LeaveThreadMessageSpec.h"
 #include "MessageSpecs/MessageSpec.h"
 #include "MessageSpecs/MultimediaMessageSpec.h"
 #include "MessageSpecs/ReactionMessageSpec.h"
+#include "MessageSpecs/RemoveMembersMessageSpec.h"
 #include "MessageSpecs/RestoreEntryMessageSpec.h"
 #include "MessageSpecs/SidebarSourceMessageSpec.h"
 #include "MessageSpecs/TextMessageSpec.h"
@@ -75,6 +79,21 @@
       message_specs_initializer.insert(
           {MessageType::UPDATE_RELATIONSHIP,
            std::make_unique<UpdateRelationshipMessageSpec>()});
+      message_specs_initializer.insert(
+          {MessageType::UPDATE_RELATIONSHIP,
+           std::make_unique<UpdateRelationshipMessageSpec>()});
+      message_specs_initializer.insert(
+          {MessageType::JOIN_THREAD,
+           std::make_unique<JoinThreadMessageSpec>()});
+      message_specs_initializer.insert(
+          {MessageType::LEAVE_THREAD,
+           std::make_unique<LeaveThreadMessageSpec>()});
+      message_specs_initializer.insert(
+          {MessageType::ADD_MEMBERS,
+           std::make_unique<AddMembersMessageSpec>()});
+      message_specs_initializer.insert(
+          {MessageType::REMOVE_MEMBERS,
+           std::make_unique<RemoveMembersMessageSpec>()});
       return message_specs_initializer;
     }();
 
diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/AddMembersMessageSpec.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/AddMembersMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/AddMembersMessageSpec.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class AddMembersMessageSpec : public MessageSpec {
+  virtual std::unique_ptr<std::string>
+  messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+    return std::make_unique<std::string>(
+        folly::toJson(rawMessageInfo["addedUserIDs"]));
+  }
+};
+} // namespace comm
diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/JoinThreadMessageSpec.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/JoinThreadMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/JoinThreadMessageSpec.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class JoinThreadMessageSpec : public MessageSpec {
+  virtual std::unique_ptr<std::string>
+  messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+    return nullptr;
+  }
+};
+} // namespace comm
diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/LeaveThreadMessageSpec.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/LeaveThreadMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/LeaveThreadMessageSpec.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class LeaveThreadMessageSpec : public MessageSpec {
+  virtual std::unique_ptr<std::string>
+  messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+    return nullptr;
+  }
+};
+} // namespace comm
diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/RemoveMembersMessageSpec.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/RemoveMembersMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/RemoveMembersMessageSpec.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class RemoveMembersMessageSpec : public MessageSpec {
+  virtual std::unique_ptr<std::string>
+  messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+    return std::make_unique<std::string>(
+        folly::toJson(rawMessageInfo["removedUserIDs"]));
+  }
+};
+} // namespace comm