LAVA is the cooperative behind the Belgian fruit and vegetable auctions — REO, BelOrta and Coöperatie Hoogstraten. Every morning, large volumes of fresh produce are sold there to supermarkets, caterers and professional buyers at home and abroad. To carry that trade into the future, LAVA had a completely new real-time auction platform built. Cloudway delivered the scalable AWS backend behind it.
The Belgian auctions run on a descending-price clock. The price starts high and falls, and the first buyer to press wins the lot. That buyer is put straight through to the seller over live audio to agree quantities and logistics, after which the clock restarts on whatever stock is left. Buyers take part from a seat in one of the auction halls or online from their own PC.
That format puts an unusual demand on the software. The clock is not a display of the sale — it *is* the sale, so every buyer must see the same price at the same instant and every press must be judged in the order it truly happened. Latency is not a quality attribute here; it decides who buys and at what price. The load is concentrated too: the trade happens in a short window each morning, produce does not wait, and a clock that stalls stops the day.
For LAVA the business case was therefore not a feature list. It was reach, trust and continuity: let buyers bid from anywhere without giving them a slower seat, keep the result beyond dispute, and make sure a business-critical system holds up in the only hour that matters.
We built an event-driven backend in TypeScript on Node.js, on a [cloud native architecture](https://www.cloudway.be/cloud-native-architecture) on AWS designed for high availability under a short, sharp daily peak.
The heart of it is guaranteeing that concurrent bids resolve correctly. When several buyers press within the same instant, the platform settles the lot on one unambiguous winner, and every connected client — in the hall or at a desk — sees the same clock, the same price and the same outcome at the same moment. The platform also tracks the quality of each buyer's connection, because a degraded connection is a fairness problem before it is ever a support ticket.
Around that, the backend processes bids in real time, keeps users and auction data in step, and drives the audio connection between the winning bidder and the seller. Clients are kept current over WebSockets, so buyers act on live prices rather than on a refreshed page.
For a system like this, a load test written after go-live is worth very little. So we also built a runbook module that defines scenarios and load tests as YAML, replaying realistic interactions between roles such as admin and buyer. Peak behaviour is now something LAVA can demonstrate on demand, rather than discover on a live trading morning — which is what makes a change to a business-critical trading platform safe to release.
LAVA now runs its auctions on a scalable, cloud native platform that delivers what a business-critical trading floor needs:
our experts are happy to look at it with you