# Migrating to Version 3

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [connect-full.txt](https://docs.redpanda.com/connect-full.txt)

---
title: Migrating to Version 3
latest-connect-version: 4.93.0
latest-operator-version: v26.1.4
latest-console-tag: v3.7.3
latest-redpanda-tag: v26.1.9
docname: migration/v3
page-component-name: connect
page-version: master
page-component-version: master
page-component-title: Connect
page-relative-src-path: migration/v3.adoc
page-edit-url: https://github.com/redpanda-data/rp-connect-docs/edit/main/modules/guides/pages/migration/v3.adoc
description: Learn how to migrate to Redpanda Connect v3.
page-git-created-date: "2024-05-24"
page-git-modified-date: "2024-09-05"
---

<!-- Source: https://docs.redpanda.com/connect/guides/migration/v3.md -->

Redpanda Connect version 3 comes with some breaking [service](#service) and [configuration](#configuration) changes as well as a few breaking [API changes](#go-api).

## [](#service)Service

### [](#memory-map-file-buffer-removed)Memory map file buffer removed

The long deprecated `mmap_file` buffer has been removed. If you were still relying on this buffer implementation then please [raise an issue](https://github.com/redpanda-data/connect/issues).

### [](#old-metrics-paths-removed)Old metrics paths removed

The following undocumented metrics paths have been removed:

-   `input.parts.count`

-   `input.read.success`

-   `input.read.error`

-   `input.send.success`

-   `input.send.error`

-   `input.ack.success`

-   `input.ack.error`

-   `output.running`

-   `output.parts.count`

-   `output.send.success`

-   `output.parts.send.success`

-   `output.send.error`


All of these paths have [remaining equivalents](https://docs.redpanda.com/connect/components/metrics/about/#paths).

### [](#metric-path-changes)Metric path changes

The `http_client` output client metrics have been renamed from `output.**.output.http_client**` **to `output.`**`.client`.

## [](#configuration)Configuration

### [](#metrics-prefix)Metrics prefix

The configuration field `prefix` within `metrics` has been moved from the root of the config object to individual types. E.g. when using `statsd` the field `metrics.prefix` should be replaced with `metrics.statsd.prefix`.

### [](#json-paths)JSON paths

Many components within Redpanda Connect use an unspecified "JSON dot path" syntax for querying and setting fields within JSON documents. The format of these paths has been formalized to make them clearer and more generally useful, but this potentially breaks your paths when they query against hierarchies that contain arrays.

The formal specification for v3 can be found [in this document](https://docs.redpanda.com/connect/configuration/field_paths/).

The following components are affected:

-   `awk` processor (all of the `json_*` functions)

-   `json` processor (`path` field)

-   `process_field` processor (`path` field)

-   `process_map` processor (`premap`, `premap_optional`, `postmap` and `postmap_optional` fields)

-   `check_field` condition (`path` field)

-   `json_field` function interpolation

-   `s3` input (`sqs_body_path`, `sqs_bucket_path` and `sqs_envelope_path` fields)

-   `dynamodb` output (`json_map_columns` field values)


#### [](#migration-guide)Migration guide

In order to replicate the exact same behavior as currently exists your paths should be updated to include the character `*` wherever an array exists. For example, the default value of `sqs_body_path` for the `s3` input has been updated from `Records.s3.object.key` to `Records.*.s3.object.key`.

### [](#process-dag-stage-names)Process DAG stage names

The `process_dag` processor now only permits workflow stage names matching the following regular expression: `[a-zA-Z0-9_-]+`. The reasoning for this restriction is to potentially expand the features of `process_dag` in the future with custom root fields (e.g. `$on_error`).

## [](#go-api)Go API

### [](#modules)Modules

Redpanda Connect now fully adheres to [Go Modules](https://github.com/golang/go/wiki/Modules), import paths must therefore now contain the major version (v3) like so:

```go
import "github.com/Jeffail/benthos/v3/lib/processor"
```

It should be pretty quick to update your imports, either using a tool or just:

```sh
grep "Jeffail/benthos" . -Rl | grep -e "\.go$" | xargs -I{} sed -i 's/Jeffail\/benthos/Jeffail\/benthos\/v3/g' {}
```

### [](#other)Other

-   Constructors for buffer components now require a `types.Manager`, giving them parity with other components: `buffer.New(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)`