diff --git a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
index 61b227c3c0da4fde7bd307bfa827edea0438765b..b6c47abb553cfa2c884fde1f2c13f3245432c387 100644
--- a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
@@ -167,10 +167,12 @@ namespace armarx::armem::base
         // forEachEntityInstance() is provided by ForEachEntityInstanceMixin.
 
 
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline const auto& providerSegments() const
         {
             return this->_container;
         }
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline auto& providerSegments()
         {
             return this->_container;
diff --git a/source/RobotAPI/libraries/armem/core/base/EntityBase.h b/source/RobotAPI/libraries/armem/core/base/EntityBase.h
index 4fe586cc309520494fd8443ef1f28f1cfe010229..6db264e1f6e9be64209307714b2b48ecfd3ac2f7 100644
--- a/source/RobotAPI/libraries/armem/core/base/EntityBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/EntityBase.h
@@ -346,10 +346,12 @@ namespace armarx::armem::base
         // forEachEntityInstance() is provided by ForEachEntityInstanceMixin.
 
 
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline const ContainerT& history() const
         {
             return this->_container;
         }
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline ContainerT& history()
         {
             return const_cast<ContainerT&>(const_cast<const EntityBase*>(this)->history());
@@ -390,6 +392,7 @@ namespace armarx::armem::base
             return ret;
         }
 
+
         void append(const DerivedT& m)
         {
             ARMARX_INFO << "Entity: Merge name '" << m.name() << "' into '" << name() << "'";
diff --git a/source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.h b/source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.h
index 0d9a6ffdca8e15c3164797be76087cb5cae0052f..1322802a36c93f4685be4b19ff24cc6bcaacb4c5 100644
--- a/source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/EntitySnapshotBase.h
@@ -78,7 +78,6 @@ namespace armarx::armem::base
         {
             return const_cast<EntityInstanceT&>(const_cast<const EntitySnapshotBase*>(this)->getInstance(index));
         }
-
         const EntityInstanceT& getInstance(int index) const
         {
             if (hasInstance(index))
@@ -132,10 +131,12 @@ namespace armarx::armem::base
             return base::detail::forEachChildSingle(this->_container, func);
         }
 
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline const std::vector<EntityInstanceT>& instances() const
         {
             return this->_container;
         }
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline std::vector<EntityInstanceT>& instances()
         {
             return const_cast<std::vector<EntityInstanceT>&>(const_cast<const EntitySnapshotBase*>(this)->instances());
diff --git a/source/RobotAPI/libraries/armem/core/base/MemoryBase.h b/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
index 271f2bf9f5b0ef44b69c062a7bdbb0e826b8bd2c..72e5cf605c4b75c1b849b1463e3420573da11c3f 100644
--- a/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
@@ -190,10 +190,12 @@ namespace armarx::armem::base
         // forEachEntityInstance() is provided by ForEachEntityInstanceMixin.
 
 
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline auto& coreSegments() const
         {
             return this->_container;
         }
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline auto& coreSegments()
         {
             return this->_container;
diff --git a/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
index a09fda41f17e345e1842cc991717c40e2e8bc731..cd7aaa359b789e93b6c2fbd7bf9f714f5d6ae427 100644
--- a/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
@@ -158,10 +158,12 @@ namespace armarx::armem::base
         // forEachEntityInstance() is provided by ForEachEntityInstanceMixin.
 
 
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline const ContainerT& entities() const
         {
             return this->_container;
         }
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         inline ContainerT& entities()
         {
             return this->_container;
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.h b/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.h
index bd76303abc4e77d3f80db3227f9b8347cabc5505..7565e15a74368c576d624f98a82dc98acfba9beb 100644
--- a/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/detail/MemoryContainerBase.h
@@ -53,23 +53,30 @@ namespace armarx::armem::base::detail
             return _container.clear();
         }
 
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         typename ContainerT::const_iterator begin() const
         {
             return _container.begin();
         }
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         typename ContainerT::iterator begin()
         {
             return _container.begin();
         }
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         typename ContainerT::const_iterator end() const
         {
             return _container.end();
         }
+        [[deprecated("Direct container access is deprecated. Use forEach*() instead.")]]
         typename ContainerT::iterator end()
         {
             return _container.end();
         }
 
+
+    protected:
+
         const ContainerT& container() const
         {
             return _container;
@@ -80,8 +87,6 @@ namespace armarx::armem::base::detail
         }
 
 
-    protected:
-
         /**
          * @throw `armem::error::ContainerNameMismatch` if `gottenName` does not match `actualName`.
          */