Telestion Developer Documentation
Welcome to the Telestion Documentation pages.
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.
Telestion is an extensible, open source ecosystem for building Ground Station Software. It's based on Java for the backend and React on the frontend side.
Telestion is an ecosystem for building mission-specific Ground Station Software. Since every mission's requirements are different, this documentation describes the general concepts and how to use the ecosystem to develop mission-specific software.
For end-user instructions for a Telestion-based Ground Station software, please ask your Ground Station Software Development Team.
Telestion Concepts YouTube Series
Before you get started with developing within the Telestion Ecosystem, it's important to grasp the various bits and pieces in the ecosystem.
To start, you should watch the Telestion Concepts YouTube playlist, a set of short videos explaining the most important concepts you need to know to dive into developing a Ground Station using Telestion:
Telestion Concepts Playlist »https://www.youtube.com/playlist?list=PLIg6wHc9-7aXgtMEL8SQc6bp-b0JhKpYTHigh-level ecosystem overview
To give you an idea of where to might go next (if you haven't watched the YouTube playlist), take a quick look at the two main components of every Telestion Project: the Application and the Client.
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.
The Client is the User Interface your Ground Station operators interact with. It's based on web technologies (with React and TypeScript at the core of its tech stack) and provides a framework for building re-usable widgets that get displayed in dashboards.