Skip to content

System Redundancy

Multiple instances of GroundControl can run simultaneously and connect to the same database and RabbitMQ instance. Setting up a second system can increase performance and improve fault tolerance.

Setting Up a Second GroundControl Instance

When setting up a second GroundControl instance, there are a few common pitfalls to avoid:

SQLCMD Must Be Downloaded Separately

Since the second machine (most likely) will not have SQL Server installed, SQLCMD must be downloaded separately to enable the Manager Tool to verify and save database information.

Download link: Run Transact-SQL script files using sqlcmd - SQL Server | Microsoft Learn

RabbitMQ User Must Be Created

Authentication with "guest – guest" only works against the local RabbitMQ instance, not from another machine. You must create a dedicated user account for remote connections.

Service Distribution and Scaling

All GroundControl services can run multiple times across different machines. However, the behavior differs depending on the service type:

Services That Can Run Truly in Parallel

The following services can run multiple instances simultaneously without any restrictions, allowing for increased throughput and redundancy:

  • Internal Event Processing
  • External Event Processing
  • Subscriber Broker
  • Logging
  • Licensing

Services with Built-in Coordination Mechanisms

These services have built-in mechanisms to ensure that only one instance sends messages at a time, even when multiple instances are running:

  • Event Scheduler
  • DAMM Subscriber

API/Web Frontend Considerations

The API/Web service is more complex because it always provides an instance of the GroundControl VGRS frontend on the configured machine's port. You have two options:

  1. Background processes only: Do not start the API service and only run the background processes multiple times
  2. Load balancer approach: Deploy a load balancer or reverse proxy in front of multiple API instances to distribute incoming requests