diff --git a/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapImpl.java b/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapImpl.java
index 69dc4a4..4404d98 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapImpl.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapImpl.java
@@ -458,18 +458,24 @@
     }
 
     private void notifyPeers(InternalPutEvent event) {
-        broadcastMessageExecutor.execute(() -> broadcastMessage(updateMessageSubject, event));
+        // FIXME extremely memory expensive when we are overrun
+//        broadcastMessageExecutor.execute(() -> broadcastMessage(updateMessageSubject, event));
+        broadcastMessage(updateMessageSubject, event);
     }
 
     private void notifyPeers(InternalRemoveEvent event) {
-        broadcastMessageExecutor.execute(() -> broadcastMessage(removeMessageSubject, event));
+        // FIXME extremely memory expensive when we are overrun
+//        broadcastMessageExecutor.execute(() -> broadcastMessage(removeMessageSubject, event));
+        broadcastMessage(removeMessageSubject, event);
     }
 
     private void broadcastMessage(MessageSubject subject, Object event) {
+        // FIXME can we parallelize the serialization... use the caller???
         ClusterMessage message = new ClusterMessage(
                 clusterService.getLocalNode().id(),
                 subject,
                 serializer.encode(event));
+        //broadcastMessageExecutor.execute(() -> clusterCommunicator.broadcast(message));
         clusterCommunicator.broadcast(message);
     }
 
