Open
Description
openedon Mar 2, 2024
Describe the Issue
FhirEngine package is reponsible for handling all apis related to storage.
Sync package is reponsible for handling all apis related to sync.
However we identified certain issues in the current implementation of placing the sync APIs in the FhirEngine interface:-
- Tightly coupled Sync and FhirEngine packages.
- Misplaced responsibilities like UploadProgress in FhirEngine package
- Redundant data models like SyncUploadProgress and SyncJobStatus.InProgress
- FhirSynchronizer.synchronize can return a Flow<SyncJobStatus> #2386
- Inaccurate tracking of SyncJobStatus due to "completion-event" preceding room db update #2363
We realized that these issues stem from the assumption that the custom sync APIs (syncUpload and syncDownload) are used against a FHIR-server. This makes using the sync APIs in the FhirEngine interface difficult.
Hence we decided to refactor the sync APIs and move them to an internal interface just like FhirEngine called FhirSyncDbInteractor.
More information in this doc.
Would you like to work on the issue?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Assignees
Type
Projects
Status
New