Moose Architecture

Infrastructure

Moose supports all the core infrastructure needed to power an analytical backend. Moose translates your native Typescript/Python/SQL into components in this underlying infrastructure.

Infrastructure
Category
Supported
Software
What You
Write
What Moose
Generates
Realtime analytical databaseClickhouseData models as TS interfaces / Pydantic modelsTables
SQL statements in TS/Py functionsViews
Streaming engineRedpandaData models as TS interfaces / Pydantic modelsTopics
Processing engineTS/Py (built into Moose binary)TS/Py functionsOrchestrated streaming functions
Orchestration engineTemporalTS/Py scriptsOrchestrated workflows
WebserversRust (built into Moose binary)Data models as TS interfaces / Pydantic modelsIngest APIs
Parameterized SQL queries in TS/Py functionsEgress APIs

Dev vs Production

When you run moose dev, Moose creates a local copy of your production analytical backend, and hot swaps in changes as you code. This dev environment automatically includes containerized versions of each piece of core infrastructure.

When you want to deploy your Moose application into production, you’ll need to provide and manage the underlying infrastructure, and point your Moose application at that production infra. Alternatively, you can deploy your Moose application on managed infrastructure with one-click (including Bring Your Own Cloud/Infra) with Fiveonefour’s Boreal hosting service.

Customizing Your Infrastructure

Moose is designed to be highly customizable. You can control which infrastructure is included in your deployment using moose.config.toml:

Default Configuration

moose.config.toml
[features]
streaming_engine = true  # Include Redpanda for streaming
workflows = true        # Enable Temporal for orchestration

Warning:

By default, both streaming_engine and workflows are enabled. You must set the respective features to false to disable them.

Disabling Streaming

moose.config.toml
[features]
streaming_engine = false  # Disable Redpanda for streaming

Disabling Orchestration

moose.config.toml
[features]
workflows = false        # Disable Temporal for orchestration

Development Environment Details

ComponentPurposeAccess
Web ServerHandles HTTP requests for data ingestion and APIslocalhost:4000
ClickHouseAnalytical database for data storage and queryinglocalhost:18123
RedpandaKafka-compatible message broker for streaminglocalhost:19092
TemporalWorkflow orchestration enginelocalhost:7233 (Server) / localhost:8080 (UI)
RedisCaching and temporary storageInternal only

All these components are automatically configured to work together, creating a complete development environment that mirrors a production deployment.