the logic required to access data sources. https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-design
Maybe Single Observable cache onErrorResumeNext empty map filter doOnSuccess error doAfterTerminate PublishSubject hide startWith repeatWhen Why NY Times released Store
Store<T, V> { Single<T> get(V key); Single<T> fetch(V key); // returns an Observable that emits “fresh" any response // from the store that hit the fetcher Observable<T> stream(); }
key); // returns an Observable that emits “fresh" any response // from the store that hit the fetcher Observable<T> stream(); } Fast forward 3 years Biggest issue: observable sources
origin: ResponseOrigin data class Loading<T>(...) : StoreResponse<T>() data class Data<T>(...) : StoreResponse<T>() data class Error<T>(...) : StoreResponse<T>() }
origin: ResponseOrigin data class Loading<T>(...) : StoreResponse<T>() data class Data<T>(...) : StoreResponse<T>() data class Error<T>(...) : StoreResponse<T>() }
origin: ResponseOrigin data class Loading<T>(...) : StoreResponse<T>() data class Data<T>(...) : StoreResponse<T>() data class Error<T>(...) : StoreResponse<T>() } cache | persister | fetcher