I am not an expert, but imagine a solution:
Not on a tablet / cell (not sure that we can install a meteorite stack on such a device), but on the desktop the user needs offline availability, such as a point of sale, some transaction logging, limited or not updated -date list of products, prices and inventory etc. (Transactions using stocks that are not physically local must be “confirmed (offline)” (Places in which this stock can be sold, even if it is already reserved in a stand-alone order that they are not aware of, because they or another user is not connected to the network, especially if the user has a reserve offline)
In addition, some functions can only be used online (using another Meteor web application)
Of course, not all parts of the application can be used offline: creating confidential records, some transactions, searching, requiring a complete collection, etc. Functions offline will work through the machine’s local web server with a working local full stack Meteor is already installed.
Oplog synchronizes these offline databases with a mirror collection on a centralized server, one specific database per user, so not all big data is available offline on the user machine. The idea is to keep some features available. Otherwise, we could have only one database for offline transactions of all users, but oplog will synchronize all these transactions in all offline user databases. We could POST and clear these entries as soon as possible, but not good for privacy. Best of all, the client autonomous database is mirrored on a centralized server - it will include only records created by this user, or information that the user may require, therefore, one specific database for the user.
A central server-side function will regularly check and POST these records for a larger number of all users, including a centralized database.
Easy way: all transactions made with a local offline meteorite application that will send transactions to the web service when they are available. (Thus, users do not need to manage two applications by going back and forth.)
We could use the concept of two account numbers: Sales invoice number: generated during the transaction (document ID?)
Sequence number of the invoice: for accounting purposes, generated later (when online and for documents from 15 to 20 seconds. Old. We know for sure all new invoices created for this period)
The idea here is to have a local meteorite stack receiving a local resistance car, Oplog synchronization with centralized resistance (if we do not send asynchrone webservice calls to post transactions online, but we lose auto sinc with a larger database)
(In the end, it may be better to have 2 applications: on a local, one central service and a way to allow these 2 conversations together or an online and offline application with a convenient way to direct the user to use the online version in priority and offline mode, if it is disabled)
It would be nice if a community of more knowledgeable people evaluates and documents the workflow. I have not used Meteor yet, while still in the main learning process.
Thank,
Mark