POSTER P918: To monorepo or not to monorepo: a multi-lingual, telescope-agnostic steering control system

ADASS posters are displayed all week

When

10:18 p.m., Nov. 9, 2023

Theme: Other creative topics in astronomical software

pretalxeposter

There has been a shift in the software industry from microservices to monorepos as the associated complexity of maintaining distributed code is realized. While the primary defense of microservices is scaleability, many large software companies like Facebook, StackOverflow and GitHub depend on monolithic architectures and evidently scale "just fine". As well, in the context of telescope control systems, scaleability is simply not a concern.

At the Dominion Radio Astrophysical Observatory (DRAO), we support 5 single-dish radio telescopes and one 7-dish radio interferometer. Each has it's own hardware interface for low-level motor control and previously depended on a series of network calls to communicate monitor and control tasks to progressively higher-level software layers such as pointing corrections, coordinate transforms, and complex steering paths.

In this poster we discuss the collapse of this networked stack of microservices into a strictly-typed monorepo which supports multiple programming languages (Python/C/C++), multiple hardware interfaces, unified interfaces for all layers above the  hardware interfaces. We also discuss how this improved the developer experience and simplified the testing and deployment of a telescope control system.

Contacts

Nicholas Bruce, National Research Council