> For the complete documentation index, see [llms.txt](https://docs.rumi.systems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rumi.systems/rumi-cli/commands/quickstart.md).

# quickstart

The `rumi quickstart` commands generate complete Rumi applications and individual services to help you learn and develop with the Rumi platform.

## Overview

The quickstart commands create fully functional Rumi applications with:

* **Maven-based build configuration**
* **Generated message and state models**
* **Complete service implementations**
* **Ready-to-run configurations**

Unlike traditional samples that you download, Rumi quickstart applications are **generated by the CLI**, ensuring compatibility with your installed Rumi runtime.

## Commands

| Command                                                 | Description                                                            |
| ------------------------------------------------------- | ---------------------------------------------------------------------- |
| [app](/rumi-cli/commands/quickstart/app.md)             | Generate a complete quickstart application with multiple microservices |
| [processor](/rumi-cli/commands/quickstart/processor.md) | Generate a Processor service (stateful, optionally clustered)          |
| [driver](/rumi-cli/commands/quickstart/driver.md)       | Generate a Driver service (message generator)                          |
| [csvwriter](/rumi-cli/commands/quickstart/csvwriter.md) | Generate a CSVWriter service (CSV output connector)                    |

## Generated Application Structure

```
rumi-quickstart/
├── pom.xml                          # Maven build configuration
├── src/
│   ├── main/
│   │   ├── java/                    # Generated and user code
│   │   │   └── org/rumi/quickstart/
│   │   │       ├── messages/        # Generated message classes
│   │   │       ├── state/           # Generated state classes
│   │   │       └── handlers/        # User message handlers
│   │   └── resources/
│   │       ├── app.xml              # Application configuration
│   │       ├── messages.adm         # Message model definitions
│   │       └── state.adm            # State model definitions
│   └── test/
│       └── java/                    # Test code
└── README.md                        # Application-specific README
```

## Key Capabilities Demonstrated

The generated quickstart application showcases:

* **Message Modeling** - Define messages using ADM (Application Data Modeling) language
* **Code Generation** - Generate Java classes from message and state models
* **State Management** - Durable, persistent state in the Processor
* **Messaging** - Inter-microservice message passing
* **High Availability** - Hot-standby clustering with state replication
* **Fault Tolerance** - Transaction logging and automatic recovery
* **Configuration** - Declarative configuration using X-DDL

## After Generation

Once generated, the quickstart application includes a detailed README.md that guides you through:

1. **Building the application** - Using Maven
2. **Running the microservices** - Starting Driver, Processor, and CSVWriter
3. **Understanding the code** - Exploring message handlers and state management
4. **Experimenting** - Modifying the application to learn Rumi abstractions
5. **Testing fault tolerance** - Stopping/starting cluster members to observe HA

## Next Steps

After generating and exploring the quickstart application:

1. Build and run it following the generated README.md
2. Experiment with different encoding types and messaging providers
3. Add additional services using the individual service commands
4. Use it as a template for building your own applications
5. Refer to the full documentation for deeper dives into specific topics

## Related Documentation

* [**Set Up your Dev Environment**](/getting-started/quickstart.md) - Prerequisites for building Rumi applications
* [**Supported OS and Runtimes**](/rumi-core/reference/supported-os-and-runtimes.md) - Runtime requirements


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.rumi.systems/rumi-cli/commands/quickstart.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
