Developer toolkit for building real-time analytical backends in Typescript and Python — MooseStack brings data engineering best practices and a modern web development DX to any engineer building on data infra.
MooseStack modules offer a type‑safe, code‑first developer experience layer for popular open source analytical infrastructure, including ClickHouse, Kafka, Redpanda, and Temporal.
MooseStack is designed for:
- Software engineers integrating analytics & AI into their apps, and leaning into real-time / OLAP infrastructure best practices
- Data engineers building software & AI applications on their data infra, and leaning into software development best practices
- Git-native development: Version control, collaboration, and governance built-in
- Local-first experience: Full mirror of production environment on your laptop with
moose dev
- Schema & migration management: typed schemas in your application code, with transparent migration support
- Code‑first infrastructure: Declare tables, streams, workflows, and APIs in TS/Python -> MooseStack wires it all up.
- Modular design: Only enable the modules you need. Each module is independent and can be adopted incrementally.
- AI copilot friendly: Designed from the ground up for LLM-powered development
- Moose OLAP: Manage ClickHouse tables, materialized views, and migrations in code.
- Moose Streaming: Real‑time pipelines with Kafka/Redpanda and transformation functions.
- Moose Workflows: ETL pipelines and tasks with Temporal.
- Moose APIs: Type‑safe ingestion and query endpoints with auto‑generated OpenAPI docs.
- MooseStack Tooling: Moose Deploy, Moose Migrate, Moose Observability
import { Key, OlapTable, Stream, IngestApi, ConsumptionApi } from "@514labs/moose-lib";
interface DataModel {
primaryKey: Key<string>;
name: string;
}
// Create a ClickHouse table
export const clickhouseTable = new OlapTable<DataModel>("TableName");
// Create a Redpanda streaming topic
export const redpandaTopic = new Stream<DataModel>("TopicName", {
destination: clickhouseTable,
});
// Create an ingest API endpoint
export const ingestApi = new IngestApi<DataModel>("post-api-route", {
destination: redpandaTopic,
});
// Create consumption API endpoint
interface QueryParams {
limit?: number;
}
export const consumptionApi = new ConsumptionApi<QueryParams, DataModel[]>("get-api-route",
async ({limit = 10}: QueryParams, {client, sql}) => {
const result = await client.query.execute(sql`SELECT * FROM ${clickhouseTable} LIMIT ${limit}`);
return await result.json();
}
);
from moose_lib import Key, OlapTable, Stream, StreamConfig, IngestApi, IngestApiConfig, ConsumptionApi
from pydantic import BaseModel
class DataModel(BaseModel):
primary_key: Key[str]
name: str
# Create a ClickHouse table
clickhouse_table = OlapTable[DataModel]("TableName")
# Create a Redpanda streaming topic
redpanda_topic = Stream[DataModel]("TopicName", StreamConfig(
destination=clickhouse_table,
))
# Create an ingest API endpoint
ingest_api = IngestApi[DataModel]("post-api-route", IngestApiConfig(
destination=redpanda_topic,
))
# Create a consumption API endpoint
class QueryParams(BaseModel):
limit: int = 10
def handler(client, params: QueryParams):
return client.query.execute("SELECT * FROM {table: Identifier} LIMIT {limit: Int32}", {
"table": clickhouse_table.name,
"limit": params.limit,
})
consumption_api = ConsumptionApi[RequestParams, DataModel]("get-api-route", query_function=handler)
Already running Clickhouse? MooseStack gives you a modern software DX on your existing ClickHouse or ClickHouse Cloud cluster: Getting Started with Existing Clickhouse
bash -i <(curl -fsSL https://fiveonefour.com/install.sh) moose
# typescript
moose init my-project --from-remote <YOUR_CLICKHOUSE_CONNECTION_STRING> --language typescript
# python
moose init my-project --from-remote <YOUR_CLICKHOUSE_CONNECTION_STRING> --language python
cd my-project
moose dev
MooseStack will start ClickHouse, Redpanda, Temporal, and Redis; the CLI validates each component.
The easiest way to deploy to production with MooseStack is to use Boreal from Fiveonefour, the creators of MooseStack. Boreal provides github integration for CI/CD and one click deploys, cloud previews of your dev branches, managed or BYO infrastructure, and security + observability. Boreal works natively with ClickHouse Cloud and RedPanda Cloud.
MooseStack is open source, and apps built with MooseStack can be self-hosted. For detailed self-hosting instructions, see our deployment documentation.
- ClickHouse (OLAP storage)
- Redpanda (streaming)
- Temporal (workflow orchestration)
- Redis (internal state)
We welcome contributions! See the contribution guidelines.
MooseStack is open source software and MIT licensed.