A new project is still in the concept phase, in which the profiling of the database is currently being worked on.
I would like to know if anyone has any practical experience with the concept below.
An online database (jRDC2 server on a VPS server with SQLite) has many tables, each with many records.
It should be possible to synchronize the data regularly from several mobile clients on demand.
As a program technical approach the "delta synchronization" is intended, since thereby possibly not unnecessarily many data are moved.
The concept
It is to be implemented in such a way that only the changed or new data records are transferred.
This is to be done using timestamps to determine what data has been changed since the last synchronization.
I would like to know if anyone has any practical experience with the concept below.
- Are there any pitfalls in it that are essential to consider?
- Has anything been forgotten that might be important for long-term day-to-day operation?
An online database (jRDC2 server on a VPS server with SQLite) has many tables, each with many records.
It should be possible to synchronize the data regularly from several mobile clients on demand.
As a program technical approach the "delta synchronization" is intended, since thereby possibly not unnecessarily many data are moved.
The concept
It is to be implemented in such a way that only the changed or new data records are transferred.
This is to be done using timestamps to determine what data has been changed since the last synchronization.
RESTful API:
Access is to be controlled via a RESTful API, if applicable.
Mobile clients can send HTTP requests to this API to retrieve, update, or add specific records.
Websockets:
Websockets for real-time synchronization would also be ideal.
This would allow clients to receive changes in real time.
Batch processing:
Synchronization logic should be able to process data in batches, rather than transferring records one at a time.
This should reduce overhead costs.
Client-side caching:
Client-side data should be stored locally to allow previously retrieved data to be used without retransmission.
Conflict resolution:
A conflict resolution mechanism shall be implemented in case multiple clients access the same data simultaneously and make changes. This is important to ensure data consistency.
Authentication and authorization:
It should be ensured that only authorized users can access the data to ensure data privacy and security.
Fallback mechanisms:
Fallback mechanisms may need to be implemented to allow clients to synchronize data even if the network connection is temporarily interrupted.