Building a Cross-Platform POS System with Flutter + Dart Server + Isar DB

Hi everyone :waving_hand:,

I’ve been working on a POS system developed & designed for restaurants and fast-food centers. It runs on Android, iOS, and Windows using Flutter.

Here’s how it works:

  • On a POS device, the Windows app is running.
  • Inside the app, there’s an embedded Dart server.
  • Orders, menus, and all operations are stored in a local Isar database.
  • Other devices in the same network (phones, tablets, etc.) can connect via the PC’s IP address to place orders or view menus.
  • This system is already being used by dozens of real clients in production.

My concern

I’m curious about the future limitations of this architecture:

  • Is having a Dart server embedded inside the Windows Flutter app a sustainable approach?
  • How well will it scale if more devices connect at the same time?
  • Any pitfalls I should expect with Isar for long-term, multi-client usage?

This has been a great learning experience so far, but I’d love to hear thoughts from the community:
Did I make the right architectural choice?
What alternative patterns or improvements would you suggest?

Thanks in advance for your feedback!

The app is using the ‘Windows PC’ as the ‘Server’ and ‘DB’?

  1. I will monitor the monitor the recourses on the ‘Windows PC’ as this drives your App ‘Ecosystem’.
  2. What backups do you have if the ‘Server’ and ‘DB’? How critical is the data?
  3. I all ways take note of how well packages are maintained that I use in my app. (you can see bug reports on github, how long it takes to fix and when last it were updated)

There needs to be some backup that’s quickly restorable to another device, what if one day the device breaks or miscrosoft decides to brick the os.

How many devices do you think would realistically connect to this server? This seems like an on-site solution, so there might never be too many.

You should maybe think about a some low powered Linux device, safer than being on windows. but this is just a nitpick.

  1. Yes, currently both the server and the database are running on a Windows PC. The setup works fine — we created a local network via a Wi-Fi router, and through that router we expose the API for other devices to connect.

  2. The PC specs are Core i5, 8 GB RAM, 128 GB SSD, which is performing quite well and smoothly for our current needs.

  3. Regarding backups, I’m in the process of evaluating options. Could you recommend a practical approach here? I’m considering automated backups (e.g., daily DB dumps to external storage or cloud sync), but I’d love to hear your suggestions.

  4. As for packages, I always monitor the libraries I use — I make sure to pick those with good support, active maintenance, and regular updates.

We are currently working on a backup strategy. Do you have any recommendations for reliable approaches in this regard?

4-5 devices. In our region, internet connectivity is often slow or unavailable, which is why we designed the system to run with a local server and database. This ensures the system works smoothly even without the internet.

  1. I did suggest Linux to the team earlier, and I agree it’s an excellent choice for servers. However, in some cases the setup is just a single POS device, and the clients are more comfortable using Windows. That’s why we decided to stick with Windows for now.

Still, Linux is indeed a great option. Thank you for pointing that out!