Playmentum + vEFPS

Find out how we provide infrastructure and application design consultation to the team at vEFPS.

What is vEFPS?

vEFPS, or Virtual Electronic Flight Progress Strips, is an application designed to deliver realistic Electronic Flight Progress Strip functionality to users of the VATSIM network, primarily targeted at the United Kingdom. Given that no official documentation is available for any of the real-world systems used, the system aims to infer the behaviour of some real-world systems based on publicly available sources - press releases, images on blogs and footage from YouTube or other video sources.

The system aims to deliver EFPS functionality to all common aspects of VATSIM controlling that are predominant within VATSIM UK - Aerodrome, Approach and Area, including Shanwick Oceanic.

What did we do together?

Playmentum worked with the development team at vEFPS to consider different approaches to the development of both their app infrastructure, and the hosting infrastructure which runs the app.

OAuth Authentication Client

vEFPS relies on integration with VATSIM's OAuth platform to authenticate and authorise users. VATSIM is the largest online aviation network in the world, with over 100,000 users comprising virtual pilots, and virtual air traffic controllers. vEFPS is design for use alongside the Euroscope application, which in turn is designed to provide virtual air traffic controller software to that VATSIM community. Rather than try to replace Euroscope, vEFPS augments its capabilities and so it was critical to the success of the vEFPS project that the development team could authenticate users against VATSIM, and then interrogate VATSIM APIs to identify where users were carrying out their virtual air traffic controller activities in real-time.

vEFPS is a Blazor Server app, built on .NET 8. Blazor Server offers many ways to integrate with OAuth endpoints and so the Playmentum team produced a foundation implementation of an OAuth client that could consume authentication tokens from VATSIM and use them to retrieve relevant user information.

Messaging Protocols

vEFPS makes extensive use of bi-directional asynchronous messaging between Euroscope and their web app, and between the web app and their users' browsers. In the early development stages of the app, this bi-directional messaging was based entirely on SignalR. We worked with the team at vEFPS to understand their messaging requirements, and recommended the use of RabbitMQ as a more robust, reliable, and scalable message bus to interact between the Euroscope plugin and their web app. RabbitMQ offers advantages over SignalR including guaranteed delivery, persistence of unprocessed messages to disk in the event of memory pressure on the application servers, a robust library (MassTransit) for consuming messages in .NET, and scalability (if required) through horizontal scaling and clustering. SignalR remains as the protocol of choice for sharing state changes from the app servers to the user's browser.

Messaging Protocols

vEFPS makes extensive use of bi-directional asynchronous messaging between Euroscope and their web app, and between the web app and their users' browsers. In the early development stages of the app, this bi-directional messaging was based entirely on SignalR. We worked with the team at vEFPS to understand their messaging requirements, and recommended the use of RabbitMQ as a more robust, reliable, and scalable message bus to interact between the Euroscope plugin and their web app. RabbitMQ offers advantages over SignalR including guaranteed delivery, persistence of unprocessed messages to disk in the event of memory pressure on the application servers, a robust library (MassTransit) for consuming messages in .NET, and scalability (if required) through horizontal scaling and clustering. SignalR remains as the protocol of choice for sharing state changes from the app servers to the user's browser.

Hosting Infrastructure

Playmentum designed a cost-effective infrastructure on which the vEFPS application servers run. Using our experience and expertise with Docker Swarm, we built a small scale containerisation environment including a web management console, which allows the vEFPS team to rapidly deploy updates to their app, and to define infrastructure requirements as code.

Monitoring of the hosting environment is provided through Playmentum's in-house IaaS monitoring platform, with email notifications to key personnel advising them of issues including resource contention (CPU and RAM), storage issues such as queued IO or shortages of free space, monitoring of the health of network interfaces, and even basic transactional testing of the underlying infrastructure. The monitoring platform proved invaluable in the diagnosis of problems with their app, and gave the development team real-time insight into the health and capacity of their hosting infrastructure.

Playmentum also implemented a backup strategy to ensure that critical long-term statistic and audit data are preserved in the event of a failure of the hosting infrastructure.

Using the hosting architecture designed and built by Playmentum, vEFPS processes up to a million virtual air traffic control events each day, enabling their users to carry out their duties in a tool designed to emulate real-life air traffic control systems.

CHECK IT OUT

Visit vefps.io

PROJECT OVERVIEW

Playmentum provides infrastructure and application design consultancy to the team at vEFPS, for their project which delivers realistic virtual air traffic control functionality for VATSIM.

vEFPS was released to the public on 28th October 2024.