Real-time spine on Aurora + AppSync
Amolfi’s app data now runs on one AWS data spine, with live updates pushed out from the server instead of watched from your browser. Here is how a change reaches every screen without getting lost on the way.
Two people are on a call, both looking at the same client record. One of them changes a number. The other is still reading the old one and has no way to know it. Somebody eventually says “refresh,” and everyone loses a few seconds and a little faith in the screen in front of them.
Amolfi’s app data now lives on one AWS data spine. Aurora Postgres holds it, and it is the single place the whole product reads from. Live updates arrive over AppSync subscriptions rather than from a listener running inside your browser.
One place to read, updating live
The old arrangement had the client subscribed straight to the database, watching raw document changes stream past and reacting to them. The new one moves that job to the server. A change gets published, subscribers are told, screens catch up, and no browser has to hold an open line into the data store to stay current. One place reads the truth. Everyone else gets told when it moves.
What that feels like from a desk is plainer than the diagram. Things update on their own. There is nothing to sync between silos, because there are no silos. When two people open the same record, they are on the same record.
Why an update can’t get lost
Live only means something if the change and the news of the change can’t come apart. Write the row first and publish the event second, and you have left a gap between the two. That gap is where a stale screen comes from: the database is right, every screen in the company is wrong, and nothing reports a problem.
So the row write and its change event commit inside the same database transaction. That is a transactional outbox: the event is written in the same commit as the data, and a worker drains the outbox and publishes what it finds. Both land or neither does. An update cannot be saved to a record while the message announcing it goes missing in flight.
You would never shop for software on the strength of its transaction boundaries. That boundary is the reason we can say the screen updates live and mean it plainly. The number you are looking at is the number in the database, and you never have to wonder which one you got.