     }
     
     deinit {
-        let observer = self.observer
         observer.cancel()
-        writer?.asyncWriteWithoutTransaction { db in
-            db.remove(transactionObserver: observer)
-        }
     }
 }

    private var reducer: Reducer
    private let requiresWriteAccess: Bool
    private let observesSelectedRegion: Bool
    private unowned let writer: DatabaseWriter
    private let notificationQueue: DispatchQueue?
    private let reduceQueue: DispatchQueue
    private let onError: (Error) -> Void

    }
    
    func databaseDidCommit(_ db: Database) {
        guard let writer = writer else { return }
        if isCancelled { return }
        guard isChanged else { return }
        isChanged = false
        
        let fetchedValue: DatabaseFuture<Reducer.Fetched>
        
        if requiresWriteAccess || observesSelectedRegion {
