Introduction

Conceptually, the ODA consists of two main parts:

  1. A Python application which offers a REST API, through which other SKA subsystems communicate.

  2. The actual persistence layer, which the application interacts with using a Unit of Work and Repository pattern.

It designed to abstract away the actual persistence method from the client, and the REST server can be configured to use a different method at deploy time.

Currently we are using PostgreSQL for persistence, though there are also filesystem and memory implementations which are useful for testing. The ska-db-oda source code contains the Python server, which is deployed through the Helm chart. The umbrella Helm chart also deploys an instance of PostgreSQL using an open source chart.

The API is defined using OpenAPI, and clients can use this specification to send HTTP requests. Alternatively, then can import the client module.

../_images/oda_overview.svg