Interfaces
Laminar provides three interfaces for managing your stream processing pipelines. Each interface serves different use cases and user preferences.
Overview
| Interface | Type | Use Case |
|---|---|---|
| API | REST HTTP Server | Programmatic access, integrations, automation |
| UI | Web Application | Visual management, dashboards, monitoring |
| LMNR | Command-line Tool | kubectl-style resource management, CI/CD |
Architecture
All three interfaces communicate with the same backend API and share the same data model:
User Interfaces
🖥️
Console UI
Web Application
⌨️
LMNR CLI
Command Line
🔧
Custom Apps
SDK / HTTP
Laminar REST API
:8000
/pipelines/jobs/profiles/tables/udfs
Laminar Engine
ControllerWorkersScheduler
Shared Data Model
All interfaces work with the same resources:
- Pipelines - Stream processing jobs defined by SQL queries
- Jobs - Individual executions of pipelines
- Profiles - Connector configurations (Kafka, Iceberg, etc.)
- Tables - Table definitions linked to profiles
Choosing an Interface
Use the API when:
- Building custom integrations
- Automating pipeline management
- Creating custom dashboards
- Programmatic access from other services
Use the UI when:
- Getting started with Laminar
- Monitoring dashboards and logs
- Quick ad-hoc management tasks
Use LMNR CLI when:
- Managing resources via YAML manifests
- CI/CD pipeline integration
- GitOps workflows
- Bulk operations and scripting
- kubectl-style workflow preference