Projects:WebPOS Synchronized Transactions
Currently in WebPOS the main idea is to send transactions as fast as possible to the server to process them on the server. Any errors should be solved on the server environment. The big benefit of this approach is that data is fast in a safe server environment (which gets backed up etc.). It is also much easier for an administrator to access the server environment remotely than the WebPOS terminal, allowing easier fixing of issues and monitoring.
There is however a requirement to do the transaction processing on the server completely synchronously. So the WebPOS user interface should wait for the confirmation that the record has been successfully processed on one of the servers before it can proceed.
The main focus should be order handling. So the request router layer in WebPOS and the import entry/transaction handling on the server should be configurable to support synchronous transaction which wait for a ticket to be loaded/saved on the server. If an error occurs the ticket should not be saved on the server and a message should be send to the WebPOS client to show the error.
The logic should be enabled/disabled by a preference. The default should be to use the current asynchronous behavior.
The synchronized transaction logic should initially only need to work for ticket creation/updating. Not for other parts of the functionality.