Skip to content

KX Delta Platform — Aircraft Telemetry Tutorial

Prerequisite

This tutorial assumes you have already completed a standard installation of KX Delta Platform. All steps below build on that baseline.

This series walks you through building a complete aircraft telemetry data capture system from scratch using KX Delta Platform. The use case is intentionally simple - tracking changes in aircraft altitude over time - so you can focus on learning KX Delta Platform rather than the domain.

By the end of this series, you will have:

  • Defined a telemetry data schema
  • Configured a messaging server, ticker plant, real-time database, and historical database
  • Written and published a simulated data feed using q code in KX Analyst
  • Automated that feed on a 1-second timer
  • Visualized the live data in a KX Dashboard with a table grid, dropdown filter, and line graph

System architecture

The system you are building uses a set of interconnected KX Delta Platform components. In a production environment you would have external data sources and feed handlers. In this tutorial, the airTelRTE real-time engine process acts as the simulated data source. See the schematic below for an overview of this example system.

System diagram

Component summary:

Component Role
airTelMessagingServer Discovery service — allows processes to find each other
airTelMetricsPlant Ticker plant (TP) — logs all records to disk and distributes to subscribers
airTelHDB Historical database (HDB) — stores data from prior days on disk
airTelRDB Real-time database (RDB) — holds today's in-memory data
airTelRTE Real-time engine — generates and publishes simulated telemetry
airTelWorkflow Groups and orchestrates all the above processes

Design conventions

Establish these naming rules before you create anything, and apply them consistently throughout the series.

Do

  • Choose a naming format and stick to it (for example, camelCase or underscore-separated). In this tutorial all entities are prefixed with airTel followed by the entity type - for example, airTelRDB.
  • Relate entity names to their group using a shared prefix (for example, airTelSchemaGroup).
  • Use the description field to explain the purpose of each entity.
  • Add comments to functions.
  • Delete entities once they are no longer needed.

Do not

  • Modify anything prefixed with DS, Dx, Dmx, or Delta - these are standard built-ins. Copy them if customization is needed.
  • Use names that are so short they become meaningless.

How to use this guide

Work through the files in order. Each file builds directly on the previous one.

File Contents
Setup Create a package — your first entity in KX Control
Schema and infrastructure Define the data schema, messaging server, config parameters, and metrics plant
Databases and workflow Manage instances, create the HDB and RDB, and build the workflow
Analytics Write q analytics in KX Analyst, create the RTE, and verify data flow
Automation and dashboard Automate the data feed on a timer and visualizing it in a dashboard

Remote deployment

This tutorial is written for a local installation. This minimizes setup complexity and removes environment-specific sources of error, so you can focus on learning KX Delta Platform.

In production, KX Delta Platform typically runs on a remote server while you access the UI through a browser on your local machine. The steps are the same, but a few things require additional attention:

  • Ports — remote environments, such as cloud VMs, often require ports to be explicitly opened before they are accessible. See KX Delta Platform ports for reference.
  • Remote host access — if the target machine is managed by your IT team, coordinate access before you begin.
  • Licenses — your license must match your target deployment configuration. Ensure the hostname in the license aligns with the machine where KX Delta Platform is installed.

Port assignments reference

Process Port
airTelMessagingServer 8000
airTelMetricsPlant 8001
airTelHDB 8002
airTelRDB 8003
airTelRTE 8004

To check whether a port is free on Linux before assigning it:

ss -ltnp | grep :8000

If the command returns nothing, the port is available. If it returns output, choose a different port.

Next step

Start the guide by setting up your system.