         /// This collection is drained as events get published.
         public private(set) var queuedEvents: Array<Event> = []
         
+        /// Serial dispatch queue guarding the `self.queuedEvents` collection.
+        private var publicationQueue = dispatch_queue_create("sync.client.publicationSerialQueue", DISPATCH_QUEUE_SERIAL)
+        
         init(transport: Transport, modelReconciler: ModelReconciler) {
             self.transport = transport
             self.modelReconciler = modelReconciler;

            return dictionary
        }
    }
}

        
        /* Private methods */
        private func enqueue(event: Event) {
            dispatch_sync(self.publicationQueue) { () -> Void in
                self.queuedEvents.append(event)
            }
        }
        
        private func dequeue
        
        /// A method that talks to the transport layer and in
        /// in charge of publishing the `Events` onto the network stream.
