Arkitekt Documentation
website·Indexed 32 days ago
https://arkitekt.live/Arkitekt is an open-source platform and framework for bioimage analysis that acts as a middleman between data and tools. The platform utilizes a hub-and-spoke design and includes a suite of apps such as Orkestrator (the primary user interface), Konstruktor (the installer and admin tool), and various plugins like Kare and Segmentor.
What's inside Arkitekt
- Python serves as the reference implementation for Arkitekt. The core of Arkitekt was developed in Python, making it a first-class citizen language for developing applications within the ecosystem.
Overview of Mikro storage system
Mikro is Arkitekt's core storage system for bioimage data, utilizing a relational database and an S3-compatible object store to manage datasets of any size. It is functionally similar to OMERO. Developers interact with Mikro via themikroclient module within thearkitektclient, which provides convenience methods for integration with pandas, numpy, and xarray.Overview of Arkitekt Standalone Apps
Standalones are Apps designed to be user-friendly entrypoints to the Arkitekt platform. They are installable anywhere in your lab on any computer and are intended to be easy to set up, even for those unfamiliar with the platform. While Arkitekt provides community-supported standalones, users can create their own.Overview of Arkitekt Core services and tools
Arkitekt Core consists of the essential services and tools required to run the Arkitekt platform, whether in a standard or custom configuration.
Core Services:
- Lok: Authorization and Authentication service.
- Rekuest: Action Repository and Task-Assignment.
- Port: Virtualization of plugin apps.
- Mikro: Microscopy Data Management.
- Fluss: Workflow management.
Clients and Management:
- Orkestrator: The standard platform client (available as both desktop and web apps).
- Konstruktor: The platform management tool used for installation and administration.
Overview of Orkestrator for Arkitekt
Orkestrator is the primary desktop user interface for the Arkitekt platform. It is used to create and manage workflows, inspect and comment on data, and interact with Arkitekt hubs. Unlike a web application, it is built on Electron and runs as a native application on Windows, MacOS, and Linux, allowing it to bypass browser restrictions regarding networking and hardware access.Overview of Arkitekt Next services architecture
Arkitekt Next services represent the next generation of the Arkitekt platform, currently in development. This new architecture is based on the Strawberry GraphQL framework and is designed to provide increased flexibility and scalability. While these services are not yet ready for external use, the transition will be gradual. Most transitions will not require changes to the Arkitekt SDK (with the exception of mikro-next), but a new set of GUI clients is being developed in parallel to support this architecture. A migration guide will be released once the system is deemed stable.Overview of Lok Authentication and Authorization
Lok is a service providing distributed authentication and authorization. It utilizes JWT (JSON Web Tokens) as cryptographically signed claims, allowing any service in the ecosystem to verify identity and access independently without needing to query a central server for every request.Overview of Arkitekt Plugin Apps
Plugins are Apps built using software containers. Because they are containerized, they have specific requirements and limitations. Plugins are typically more tightly integrated with the Arkitekt Platform, often utilizing the platform's graphical user interface (GUI) for a more seamless user experience.Overview of Pokket mobile gateway
Pokket is a mobile companion app for the Arkitekt ecosystem. It allows users to manage Arkitekt services and tasks, and provision ESP32-based devices. Key capabilities include authentication vialok, task management throughrekuestservice integration, and device provisioning using the Improv Wi-Fi protocol over BLE to configure Wi-Fi credentials (including Eduroam) and Arkitekt connection tokens.Overview of Kabinet AppStore
Kabinet serves as the AppStore for the platform, allowing users to install applications from common repositories ('Repos') and discover the correct application for specific bioimage tasks. Unlike Port, Kabinet does not manage containers directly; it delegates container management to 'Container Backend' Apps while providing a central state store for querying and visualizing the status of plugins and containers across connected apps.Overview of Konstruktor for Arkitekt platform
Konstruktor is the installer and administration tool for the Arkitekt platform. It is used to create a hub (or plugin engine) as a standard Docker Compose project and authorize it against a coordination server. Once set up, Konstruktor provides a dashboard to start, stop, update, back up, and inspect the hub. It is available as both a desktop application and akonstruktorcommand-line tool.Overview of Arkitekt GraphQL API
Arkitekt exposes all its functionality through a set of GraphQL APIs. This design choice was made to support a developer-first approach and to handle highly relational bioimage data more efficiently than REST. Key benefits include:
- Flexibility: Clients specify exact data needs to prevent over-fetching/under-fetching.
- Strong Typing: Ensures data integrity and enables IDE-based API exploration.
- Schema Evolution: New fields can be added without breaking existing queries.
- Aggregation: Multiple data sources can be fetched in a single query.
- Real-time Updates: Supports subscriptions for monitoring analysis progress (e.g., streaming analysis).
- Self-documenting: Includes introspection capabilities accessible via the GraphIQL interface on the Arkitekt server.