Mirroring / replicating (which is the right word?!) two firebird db
April 28, 2021 11:16 AM   Subscribe

At the centre I volunteer at we have three tills for ringing up sales. A sale made on one till, will, within half an hour appear on the other two tills. The data goes up to the cloud and down again. However, the company that provides this cloud service is going to cease supporting our installation because they're withdrawing from our region due to Covid.

That means each till will continue to function but they'll become increasingly estranged from one another as stock figures will soon get scrambled. Prices, too, won't be synchronised. Big mess.

Anyway I was wondering if I could replicate the cloud sync locally.

Anyone know how I can get three firebird databases to sync locally?!

I've seen a program called 'CopyCat' but I haven't a clue if this is the best thing or not...
Also IBReplicator, Fibre, etc...

posted by dance to Computers & Internet (4 answers total)
I have no idea how this system works but if there is a cloud component I suspect that you will have a hard time making this work properly with out the software that is (was) in the cloud.

If it really is as simple as synching two databases could you just point all 3 local terminals to a central database?
posted by jmsta at 12:03 PM on April 28

Firebird DB appears to be an open source database standard. That suggests you should be able to move the database to a local machine or another web server.

There appear to be forums, which might be a good place to get more specialist help.
posted by Happy Dave at 1:00 PM on April 28

The Firebird server — and any databases you create or connect to — must reside on a hard drive that is physically connected to the host machine. You cannot locate components of the server, or any database, on a mapped drive, a filesystem share or a network filesystem. (Well, you can, but you shouldn’t, and this technique isn’t covered here.)
Shitty DB. I'd suspect that the cloud thing slurps up all 3 db (or maybe just increments since last slurp), creates a new db combining all 3, pushes back to the POS terminal the new db. Hopefully in a manner that doesn't miss any transactions that take place during the up/merge/down phase.

This probably will involve re-creating a new db because/maybe if the POS resident dbs have OIDs that might conflict outside of the probably OK key (terminal, time) sort of uniqueness.

(This is horribly similar to some code I did to keep some router routes in sync with a database. A lot of back and forth and pushing changes.)

If you have the 3 POS networked, the easiest way if it's possible would be to put a hook into each that sends every transaction to the other two). Sadly this is a bit hard and finicky because it seems Firebase isn't something that can be accessed remotely, not even sure if it's ACID.

Are these POS terminals (tills) like actually a PC or such, or are they full on fancy magic cash register. Can you even do anything locally?
posted by zengargoyle at 5:53 PM on April 28

I'd caution you to think that you can just blindly merge all the data together. Without knowing the implementation details I think it would be dangerous for you to assume you can do anything simple that you develop yourself. You have no idea if the cloud component is doing transformations of data or any other manipulations.

Your best bet is to find an enthusiast community that provides this capability to people like you that are cut off from the cloud service. Your next best bet is to immediately start evaluating if you can live without the cloud component and/or figuring out how to move to a new POS.
posted by mmascolino at 7:16 AM on April 29

« Older How to react to potential small legacy from...   |   Facebook account hacked Newer »

You are not logged in, either login or create an account to post comments