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
System Overview
Key Components
Controller
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
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
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.