A distinguished auction
For over 100 years, Royal Flora Holland (RFH) has been a leading player in global flower trading and hosts the world’s largest flower auction.
As a cooperative of growers, RFH has centralized the supply of flowers and plants by combining multiple auction locations.
While RFH has automated many auction processes and transitioned to the public cloud, the underlying .NET Windows-based applications remained unchanged.
Flowers being sold 'Underneath the clock'
Breaking the status quo
RFH’s old physical processes were built into many tools, making automation a key aspect of their digital transformation.
This is evident in the digital interfaces and processes that still reflect the traditional auctioning underneath the clock.
The challenge now is to modernize the real-time auction using the public cloud, while navigating a complex environment where users resist change.
Architecture of processes and tools that mimic the physical auction
Modernizing the technology stack by migrating from monolithic applications to microservices and replacing old desktop applications with web-based technologies. All the while emphasizing user needs in the development process of an almost greenfield system.
Proposed new architecture
A Dutch Auction has been the traditional way of selling flowers in the Netherlands. The auction process involves transporting flowers to the auction site where auctioneers use a mechanical clock to set a suitable price.
Auctioning with a mechanical clock
During the automation of the flower auction, several tools and processes were developed to support the physical processes. These include digital buying locations such as the Tribune Werkplek and the remote buying application, Kopen Op Afstand, which enable buyers to purchase from anywhere in the world.
Tools like Beeldveilen allowed buyers to inspect flowers and plants without being physically present at the auction.
While Floriday has modernized the supply chain of RFH. The real-time auction, where auctioneers sell flowers and plants to buyers worldwide, still relies on outdated systems.
Auctioning with current systems
To update the flower auction to modern standards, we identified four areas that required improvement:
- The systems were constructed as monolithic entities that are heavily inter-connected
- UDP is used to send instantaneous messages to clients. Twice, just to ensure all clients receive the correct data
- Releases are planned and scheduled with multiple release-freezes per year
- Clients exclusive to Windows are used
We are untangling the highly intertwined current systems of RFH by transforming the monolithic applications into micro-services.
To ensure clear separation of concerns, each micro-service is responsible for a single task, while still allowing interdependence among services.
Our micro-services are running on cloud native building blocks and utilize standard cloud patterns developed by Conclusion Application Innovation. This architecture allows each service to be individually scalable based on the required load for any given (date-)time.
The current systems use UDP/multi-cast to broadcast messages to all active buyers. Although this technology is proven, there are some issues that require the system to send messages multiple times to ensure that all clients receive the correct data.
To replace UDP messaging, any new technology must meet two requirements:
- Ensure that all clients receive real-time updates
- Provide an average maximum latency of 90ms from anywhere in the world
After researching various technologies, and their implementations, we determined that the .NET implementation was the most appropriate solution for our needs.
3. Continuous Integration / Continuous Delivery (CI/CD)
The new auction system is developed using complete CI/CD tooling, eliminating planned releases and freeze periods. To ensure quick and reliable releases, all new code is thoroughly tested and monitored.
The frontend uses Storybook to develop and test components in isolation, while also bringing business requirements, development, and design together.
End-to-end tests are performed using Cypress to ensure seamless integration of components and expected behavior of the application in real-world scenarios.
Quality gates are integrated into the automated release pipeline to prevent untested code from reaching production. The releases are continuously monitored with tools such as Cypress dashboard and SonarCube.
4. A web interface
Buying flowers and plants at the auction can be inconvenient for new buyers as they have to install software that runs exclusively on Windows.
In addition, this software requires manual updates to access new features or bug fixes. Users must also install and operate a VPN client to connect to the RFH network and receive UDP messages.
To improve accessibility, we have developed a new system that utilizes a browser-based React application. This application can be accessed through any device with an internet connection, including desktops, tablets, and even phones.
Exploratory design to spark conversations
The project is still under active development and is currently in the pilot phase with a small group of growers and buyers1.
Mentioned at References Footnotes
as of writing, July 15th 2021 ↩