Pos / serverless location / ws vs nservicebus


We are designing new Point of Sales (POS) application for 50+ locations. Due to increased cost for Microsoft licensing and hardware, the idea is to make most of the application serverless where only the POS application will be installed on standalone PC running Windows application.

The idea is to offload invoices as quickly as possible, but without disrupting the POS application or anything in Backoffice. Internet links between locations running the POS and datacenter on-premise where backoffice ERP is being run is in most cases 4/1 Mbps (1Mbps upload).

Working time is 12 hours, 10 POS systems generates invoice like every 2-3 minutes. So it is approx. 3600 invoices during a day. All these must be offloaded to central ERP system. Currently there are 50 location so it would be approx. 150.000 invoices a day.

VPN works but also breaks due outage on the Internet Service Provider (ISP) side. The firewall may go bad, switch may go bad, etc. We have to design a system prone to any of these errors where no invoice will be lost (on POS side there is double write on two different media + 15m backup).

Reading about Nservicebus and it may be good fit for this scenario but I am not sure. What would be advantage utilizing NServicebus to offload messages (invoices) comparing to just shoot from POS to some web service at datacenter?

If you’re not using messaging, that could definitely be a viable solution (or at least part of the solution) for many of the issues you’re experiencing. As long as the Windows client can access the message broker, that is. MSMQ is theoretically always available, but not supported by .NET Core and later. If your Windows client is .NET Framework, it can make use of NServiceBus, MSMQ as a transport and the soon-to-be-release NServiceBus.Transport.Bridge component.

But starting with messaging is already a good step in the right direction. NServiceBus enhances the experience and adds to the reliability. Especially with the Outbox.

Windows client will be developed in Delphi. Do you have any examples or customers running systems like this one? Any diagrams for similar projects?

Can’t help with Delphi. NServiceBus is pure .NET

Not that I’m aware of.

Every system is unique, so I’m not sure what it is you’re looking for. Diagrams by themselves also don’t tell you much, except that they can be used as a reference to discuss how the system is implemented.