> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting Started

This section provides guidance on setting up your environment and developing with Atoti What-If.

## Quick start

The fastest way to get started with Atoti What-If is using the Spring Boot Starter.

### Prerequisites

* Java 21 or later
* Spring Boot 3.x
* Atoti Server 6.1.x

### Add the dependency

```xml theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<dependency>
    <groupId>com.activeviam.apps</groupId>
    <artifactId>atoti-what-if-spring-boot-starter</artifactId>
    <version>5.0.0-AS6.1</version>
</dependency>
```

### Required beans

The starter auto-configures all What-If components but requires two beans from your application:

1. **`IDatabaseService`** — provided by your Atoti Server application
2. **`IWhatIfPersistenceProperties`** — provides Hibernate configuration for persistence

Example persistence properties bean:

```java theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
@Bean
public IWhatIfPersistenceProperties whatIfPersistenceProperties() {
    return () -> Map.of(
        "hibernate.hbm2ddl.auto", "update",
        "hibernate.connection.url", "jdbc:h2:mem:submissions;DB_CLOSE_DELAY=-1",
        "hibernate.connection.driver_class", "org.h2.Driver",
        "hibernate.dialect", "org.hibernate.dialect.H2Dialect",
        "hibernate.default_schema", "submissions"
    );
}
```

Additional configuration options are available through `atoti.what-if.*` properties. See the [configuration reference](./dev-getting-started/configuration-reference) for details.

### Next steps

* [Spring Boot Starter setup guide](./dev-getting-started/setup-spring-boot-starter) for step-by-step instructions
* [Configuration reference](./dev-getting-started/configuration-reference) for all available properties
* [Customize auto-configured beans](./dev-getting-started/customize-beans) to override defaults
* [Implementation example](./dev-getting-started/dev-implementation-example) for detailed configuration options
* [Components](./dev-getting-started/dev-components) to understand the library structure
