Data Stack Architecture
Based on the MooseJS primitives that you define in your application, MooseJS will automatically configure and manage your underlying data infrastructure, including:
Packaging Architecture
Your Moose applications can be packaged up to run in two similar but distinct architectures:
The “Dev” packaging is designed to run locally on your machine as you are developing. You can package and locally run your Moose app in this configuration automatically via the Moose CLI with the moose dev
command. Your app will update in realtime based on code changes, and generally does not seek to preserve local data across changes. This architecture comes with “batteries included”, container-based infrastructure packaged in, so it’s lightweight and easy to get up and running. Specifically, a Redpanda (opens in a new tab) container is included for data streaming, a Clickhouse (opens in a new tab) container is included for data storage, and a Deno (opens in a new tab) container is included for data processing (ie. Flows).
The “Prod” architecture is designed to run on-prem or in the cloud of your choice, and support highly scaled production workloads. Your entire Moose application is packaged into a single container for easy deployment and scaling. You can package your Moose app in this configuration automatically via the Moose CLI with the moose build --docker
command. It can be updated with a standard deployment process (such as CI/CD automation), and it provides deep assurances of underlying data integrity across versions and deployments. This architecture does NOT come with storage and streaming infrastructure included – it’s designed to run on top of the production data streaming and data storage clusters of your choice. Currently Moose supports Redpanda (opens in a new tab) for data streaming, and Clickhouse (opens in a new tab) for data storage.