Architecture
This page describes the package-level structure of OpticStream. For a
product-level introduction and major components, see the
project overview. For details on the OCT
processing design and event-driven pipeline, see the
design document and the OCT developer design docs under
developer/oct_*.md.
At a high level, the Python packages are:
opticstream.config: configuration models and Prefect Blocksopticstream.flows: Prefect flows for LSM and PS-OCT processingopticstream.cli: command-line interface for deploying and operating flowsopticstream.state: PostgreSQL-backed project state models and servicesopticstream.events: canonical event names and Prefect event-trigger helpersopticstream.tasks: shared Prefect tasks (archive, DANDI upload, LINC upload)opticstream.artifacts: artifact publishing hooks/tasks for flow runsopticstream.data_processing: lower-level stitching and grid utilitiesopticstream.utils: shared helper utilitiesopticstream.scripts: standalone utility scripts used by operations and debugging
For details on the PostgreSQL-backed project state design (including locks,
views, and the open_* / read_* / peek_* APIs), see the
state design developer document.
Subsequent pages in this section describe the code layout, CLI, and testing strategy in more detail.