> 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)                 |
| [webservice](/rumi-cli/commands/quickstart/webservice.md) | Generate a Webservice microservice (HTTP front door onto the engine)          |
| [driver](/rumi-cli/commands/quickstart/driver.md)         | Generate a Driver service (message generator)                                 |
| [connector](/rumi-cli/commands/quickstart/connector.md)   | Generate a Connector microservice (message-bus binding to an external system) |

## 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, Webservice, and Connector
3. **Understanding the code** - Exploring message handlers and state management
4. **Filling in the microservices** - Writing the driver's send loop, the processor's message handlers, and the connector's outbound path, for example writing each message it receives to a CSV file
5. **Experimenting** - Modifying the application to learn Rumi abstractions
6. **Testing fault tolerance** - Stopping/starting cluster members to observe HA

{% hint style="info" %}
The generated microservices are scaffolding, not a finished application. The driver's send loop, the processor's handlers, and the connector body are all deliberately left as documented skeletons for you to fill in.
{% endhint %}

## 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
