I want to create a desktop application.
The application must be able to accept database transactions even if internet connection is lost, but as soon as internet connection is available the application should start synchronization data to the web server automatically.
What would be a good architectural approach to this?