diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index e879f9e..0892df9 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -51,7 +51,7 @@
 static constexpr const char* eventServiceFile =
     "/var/lib/bmcweb/eventservice_config.json";
 
-namespace message_registries
+namespace registries
 {
 inline std::span<const MessageEntry>
     getRegistryFromPrefix(const std::string& registryName)
@@ -70,7 +70,7 @@
     }
     return {openbmc::registry};
 }
-} // namespace message_registries
+} // namespace registries
 
 #ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
 static std::optional<boost::asio::posix::stream_descriptor> inotifyConn;
@@ -86,7 +86,7 @@
     std::tuple<std::string, std::string, std::string, std::string, std::string,
                std::vector<std::string>>;
 
-namespace message_registries
+namespace registries
 {
 static const Message*
     getMsgFromRegistry(const std::string& messageKey,
@@ -123,7 +123,7 @@
     // Find the right registry and check it for the MessageKey
     return getMsgFromRegistry(messageKey, getRegistryFromPrefix(registryName));
 }
-} // namespace message_registries
+} // namespace registries
 
 namespace event_log
 {
@@ -229,8 +229,7 @@
                                nlohmann::json& logEntryJson)
 {
     // Get the Message from the MessageRegistry
-    const message_registries::Message* message =
-        message_registries::formatMessage(messageID);
+    const registries::Message* message = registries::formatMessage(messageID);
 
     std::string msg;
     std::string severity;
@@ -240,7 +239,7 @@
         severity = message->severity;
     }
 
-    redfish::message_registries::fillMessageArgs(messageArgs, msg);
+    redfish::registries::fillMessageArgs(messageArgs, msg);
 
     // Get the Created time from the timestamp. The log timestamp is in
     // RFC3339 format which matches the Redfish format except for the
diff --git a/redfish-core/include/registries.hpp b/redfish-core/include/registries.hpp
index f85d2a5..eff91a4 100644
--- a/redfish-core/include/registries.hpp
+++ b/redfish-core/include/registries.hpp
@@ -19,7 +19,7 @@
 #include <string>
 #include <string_view>
 
-namespace redfish::message_registries
+namespace redfish::registries
 {
 struct Header
 {
@@ -62,4 +62,4 @@
     }
 }
 
-} // namespace redfish::message_registries
+} // namespace redfish::registries
diff --git a/redfish-core/include/registries/base_message_registry.hpp b/redfish-core/include/registries/base_message_registry.hpp
index f43f7e7..ef7ba62 100644
--- a/redfish-core/include/registries/base_message_registry.hpp
+++ b/redfish-core/include/registries/base_message_registry.hpp
@@ -13,7 +13,7 @@
 
 // clang-format off
 
-namespace redfish::message_registries::base
+namespace redfish::registries::base
 {
 const Header header = {
     "Copyright 2014-2021 DMTF. All rights reserved.",
@@ -1300,4 +1300,4 @@
     undeterminedFault = 91,
     unrecognizedRequestBody = 92,
 };
-} // namespace redfish::message_registries::base
+} // namespace redfish::registries::base
diff --git a/redfish-core/include/registries/openbmc_message_registry.hpp b/redfish-core/include/registries/openbmc_message_registry.hpp
index b0a081c..401babf 100644
--- a/redfish-core/include/registries/openbmc_message_registry.hpp
+++ b/redfish-core/include/registries/openbmc_message_registry.hpp
@@ -16,7 +16,7 @@
 #pragma once
 #include <registries.hpp>
 
-namespace redfish::message_registries::openbmc
+namespace redfish::registries::openbmc
 {
 const Header header = {
     "Copyright 2022 OpenBMC. All rights reserved.",
@@ -2436,4 +2436,4 @@
         }},
 
 };
-} // namespace redfish::message_registries::openbmc
+} // namespace redfish::registries::openbmc
diff --git a/redfish-core/include/registries/resource_event_message_registry.hpp b/redfish-core/include/registries/resource_event_message_registry.hpp
index f769c77..de122d0 100644
--- a/redfish-core/include/registries/resource_event_message_registry.hpp
+++ b/redfish-core/include/registries/resource_event_message_registry.hpp
@@ -13,7 +13,7 @@
 
 // clang-format off
 
-namespace redfish::message_registries::resource_event
+namespace redfish::registries::resource_event
 {
 const Header header = {
     "Copyright 2014-2020 DMTF in cooperation with the Storage Networking Industry Association (SNIA). All rights reserved.",
@@ -305,4 +305,4 @@
     resourceWarningThresholdExceeded = 17,
     uRIForResourceChanged = 18,
 };
-} // namespace redfish::message_registries::resource_event
+} // namespace redfish::registries::resource_event
diff --git a/redfish-core/include/registries/task_event_message_registry.hpp b/redfish-core/include/registries/task_event_message_registry.hpp
index 8f6ec43..bbc51e7 100644
--- a/redfish-core/include/registries/task_event_message_registry.hpp
+++ b/redfish-core/include/registries/task_event_message_registry.hpp
@@ -13,7 +13,7 @@
 
 // clang-format off
 
-namespace redfish::message_registries::task_event
+namespace redfish::registries::task_event
 {
 const Header header = {
     "Copyright 2014-2020 DMTF in cooperation with the Storage Networking Industry Association (SNIA). All rights reserved.",
@@ -164,4 +164,4 @@
     taskResumed = 7,
     taskStarted = 8,
 };
-} // namespace redfish::message_registries::task_event
+} // namespace redfish::registries::task_event
