         return observingConnection
     }
 
-    public var databaseWriteSucceeded: Observable<Void> {
-        return transactionEnded
+    public var writeTransactionEnded: Observable<Void> {
+        return databaseWriteTransactionEnded
     }
 
     // MARK: Internal methods

    private var cacheUpdatesBySnapshot: [UInt64: [String: TypeErasedCacheUpdates]]
    private var minCacheUpdatesSnapshot: UInt64

    private let transactionEnded: Subject<Void>
    private let databaseTransactionEnded: Dispatch.Queue

    private let databaseWriteQueue: Dispatch.Queue
    private let connectionSetUpQueue: Dispatch.Queue

        self.minCacheUpdatesSnapshot = 0
        self.databaseWriteQueue = Dispatch.Queues.create(.SerialQueue, name: "turf.database.write-queue")
        self.connectionSetUpQueue = Dispatch.Queues.create(.SerialQueue, name: "turf.database.setup-queue")
        self.databaseWriteTransactionEndedQueue = Dispatch.Queues.create(.SerialQueue, name: "turf.database.write-ended")
        self.databaseWriteTransactionEnded = Subject<Void>()

        Dispatch.Queues.setContext(
            Dispatch.Queues.makeContext(self.databaseWriteQueue),
