﻿---
title: Rollover
description: Rollover creates a new index when the current one reaches certain conditions (age, size, document count). Elastic.Ingest.Elasticsearch supports several...
url: https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/index-management/rollover
---

# Rollover
Rollover creates a new index when the current one reaches certain conditions (age, size, document count). Elastic.Ingest.Elasticsearch supports several rollover approaches.

## Approaches


| Approach                                                                                                                           | How it works                                                         | Serverless? |
|------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|-------------|
| [Manual alias](https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/index-management/rollover/manual-alias)                   | Application manages write/read aliases and swaps them after indexing | Yes         |
| [Rollover API](https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/index-management/rollover/rollover-api)                   | Calls `POST {alias}/_rollover` with conditions                       | Yes         |
| [ILM managed](https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/index-management/rollover/ilm-managed)                     | ILM policy triggers rollover automatically based on conditions       | No          |
| [Data stream lifecycle](https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/index-management/rollover/data-stream-lifecycle) | Automatic rollover and retention via data stream lifecycle           | Yes         |


## Choosing an approach

- **Manual alias**: best for batch sync patterns where you control when indices rotate (for example, [catalog data](https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/use-cases/catalog-data))
- **Rollover API**: best when you want explicit control over rollover timing with conditions
- **ILM managed**: best for self-managed clusters that need multi-phase lifecycle (hot/warm/cold/delete)
- **Data stream lifecycle**: best for serverless and new projects that only need retention-based lifecycle