Application
Please note that the application and development of backend services using Vert.x in Telestion are deprecated. In the future, Telestion backend services will be developed using TypeScript and Deno, or through custom integrations with other languages.
While there may be a compatibility layer for Vert.x services in the future, its availability is not guaranteed.
For developing backend services, please refer to the (Work-in-Progress) documentation available here: https://pklaschka.github.io/telestion-docs-new/. Once the documentation is complete, it will be moved to the main Telestion documentation.
Additional Information:
- NATS will be used as the distributed message bus/message broker for Telestion.
- NATS' integrated authentication and authorization features will handle authentication and authorization for Ground Station operators, providing a single source of truth.
- The event bus bridge will no longer be featured, and clients will be directly connected to the NATS server.
To establish a more technology-independent terminology, the Telestion project will modify the naming conventions as follows:
- The NATS server will be referred to as the message broker, message bus, or NATS server interchangeably.
- Components that act as services without an attached user interface, will be referred to as services or backend services collectively.
- Components that provide a user interface, formerly known as "clients," will be referred to as frontends. In most cases, the frontend will authenticate to the message broker as the user, while backend services will act on their own behalf.
These changes aim to provide clearer and more consistent terminology, accounting for the possibility of components having both service and frontend functionalities. Additionally, the use of "client" for frontends will be replaced to avoid potential confusion.
We recommend using the NATS client libraries recommended by NATS itself, unless there are no suitable options available for the targeted language/environment. We will not develop our own client libraries unless there is a lack of suitable options or significant advantages justify the effort.
While Deno/TypeScript is the recommended choice for backend services, its use is not mandatory. Developers will be encouraged to use Deno/TypeScript where appropriate, but other options will still be supported for specific services. Comprehensive documentation and resources will be provided for writing and deploying Deno-based backend services in TypeScript.
Please consider these changes and updates as you continue with Telestion development.
The Application is a Java-based software (using the Vert.x framework) responsible for all the backend work within a Telestion project. It communicates with the various mission I/O devices, processes the data (for example, saving telemetry to the database), and communicates with the Client.
Verticles
Verticles are the building blocks of the Application. As a mental model, you can compare them to mini computers communicating with each other in a network and reacting to each other's messages.
Verticles should perform small, modular/atomic tasks so that the combination of more than one Verticle creates a data pipeline. Having Verticles do specific tasks. These smaller tasks are than much easier to develop. A resulting data pipeline could, then, look something like this (where processes are Verticles):