Architecture

Galago’s architecture is designed for flexibility, scalability, and ease of integration with laboratory equipment. This section outlines the key components and their interactions within the system.

Table of Contents

  1. System Overview
  2. Key Components
    1. Controller
    2. Tools
    3. Database

System Overview

Key Components

Controller

Central Management System

The controller is the central component that manages the overall system. It's built using Next.js and tRPC, providing a web-based interface for managing and visualizing the foundry state.

Key Features:

  • Accepts protocol blocks for scheduling
  • Manages execution for associated tools via gRPC
  • Runs on Node.js (version 18.13.0 recommended)

Tools

Device Integration Layer

Tools is a Python-based toolkit designed to interface with laboratory instruments. Each laboratory device (tool) has its own driver implemented as a gRPC server. These drivers expose a standard interface for communication with the controller.

Database

Data Storage Layer

The application uses SQLite with SQLAlchemy as the ORM, maintaining two separate databases:

  • Inventory Database: The primary database that stores laboratory-related data including workcells, instruments, plates, wells, reagents, protocols, and application settings.
  • Logs Database: A dedicated database for storing system logs and operational history.