Skip to content

Commit bc931b7

Browse files
raulblovromazgon
andauthored
feat: Conduit 0.14.0 release (#296)
* start 0.14.0 release * doc: Record size limit on standalone connectors (#286) * wip * add reference to standalone connectors * update changelog * not the case * update docs for `pipelines init` (#318) * update * update docs * `split` and `clone` processor docs (#293) * add split processor docs * make diff a bit nicer (still not nice) * fix empty line background * add clone processor specs, update all processor specs, generate docs * update clone specs * add info about release * increment announcement bar id --------- Co-authored-by: Lovro Mažgon <[email protected]>
1 parent f07434c commit bc931b7

33 files changed

+826
-111
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
slug: '2025-06-13-conduit-0-14-0-release'
3+
title: Conduit v0.14.0 release
4+
draft: false
5+
tags: [conduit, release, conduit-release]
6+
---
7+
8+
We're happy to announce the release of Conduit [v0.14.0](https://github.com/ConduitIO/conduit/releases/tag/v0.14.0), introducing the [`split`](/docs/using/processors/builtin/split) and [`clone`](/docs/using/processors/builtin/clone) processors, which enables one source record to trigger a write of multiple records in the destination.
9+
10+
:::tip
11+
The new processors return multiple records, which is currently only supported in the new v2 engine. If you want to try them out, you need to start Conduit using `conduit run --preview.pipeline-arch-v2`.
12+
:::
13+
14+
<!--truncate-->
15+
16+
### Key Highlights
17+
18+
- New option `--connectors.max-receive-record-size` in `conduit run` to configure the record size when using standalone connectors. [More information](/docs/using/connectors/installing#record-size-limitations).
19+
- Processor [`split`](/docs/using/processors/builtin/split) enables you to split an array in a record into separate records. This can be useful in AI pipelines where the input record contains a document and the output is multiple embeddings inserted into a database.
20+
- Processor [`clone`](/docs/using/processors/builtin/clone) enables you to clone any record N times. This is useful when one input record needs to be split into multiple collections (tables) on the destination.
21+
- Improvements for `pipelines init` command, which now creates a runnable demo pipeline when no flags are supplied.
22+
23+
![scarf pixel conduit-site-changelog](https://static.scarf.sh/a.png?x-pxid=b43cda70-9a98-4938-8857-471cc05e99c5)

docs/0-what-is/1-getting-started.mdx

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -57,27 +57,30 @@ install any additional connector nor to change Conduit's default configuration.
5757

5858
## Build a pipeline
5959

60-
Next, we can use the Conduit CLI to build the example pipeline:
60+
Next, we can use the Conduit CLI to build a demo pipeline:
6161

6262
```shell
6363
$ conduit pipelines init
6464
```
6565

66-
`conduit pipelines init` builds an example that generates flight information
67-
from an imaginary airport every second. Use `conduit pipelines init --help` to
68-
learn how to customize the pipeline.
66+
`conduit pipelines init` builds a demo pipeline that generates flight information
67+
from an imaginary airport every second.
6968

7069
If the `pipelines` directory, you'll notice a new file,
71-
`pipeline-generator-to-file.yaml` that contains our pipeline's configuration:
70+
`demo-pipeline.yaml` that contains our pipeline's configuration:
7271

7372
```yaml
7473
version: "2.2"
7574
pipelines:
76-
- id: example-pipeline
75+
- id: "demo-pipeline"
76+
description: "This pipeline was initialized using the `conduit pipelines init` command.
77+
It is a demo pipeline that connects a source connector (generator) to a destination connector (log).
78+
The next step is to simply run `conduit run` in your terminal and you should see a new record being logged every second.
79+
Check out https://conduit.io/docs/using/pipelines/configuration-file to learn about how this file is structured."
7780
status: running
78-
name: "generator-to-file"
81+
name: "demo-pipeline"
7982
connectors:
80-
- id: example-source
83+
- id: "generator-source"
8184
type: source
8285
plugin: "generator"
8386
settings:
@@ -98,31 +101,25 @@ pipelines:
98101
# Type: float
99102
# Optional
100103
rate: '1'
101-
- id: example-destination
104+
- id: "log-destination"
102105
type: destination
103-
plugin: "file"
104-
settings:
105-
# Path is the file path used by the connector to read/write records.
106-
# Type: string
107-
# Optional
108-
path: './destination.txt'
106+
plugin: "log"
109107
```
110108
111109
The configuration above tells us some basic information about the pipeline (ID
112110
and name) and that we want Conduit to start the pipeline automatically (
113111
`status: running`).
114112

115113
Then we see a source connector, that uses the [
116-
`generator` plugin](https://github.com/ConduitIO/conduit-connector-generator),
114+
`generator` plugin](/docs/using/connectors/list/generator),
117115
which is a built-in plugin that can generate random data. The source connector's
118116
settings translate into: generate structured data, 1 record per second. Each
119117
generated record should contain an `airline` field (type: string) and a
120118
`scheduledDeparture` field (type: duration).
121119

122120
What follows is a destination connector where the data will be written to. It
123-
uses the `file` plugin, which is a built-in plugin that writes all the incoming
124-
data to a file. It has only one configuration parameter, which is the path to
125-
the file where the records will be written.
121+
uses the [`log` plugin](/docs/using/connectors/list/log), which is a built-in plugin that writes all the incoming
122+
data to a log you can see when you run Conduit.
126123

127124
## Run Conduit
128125

@@ -132,32 +129,34 @@ With the pipeline configuration being ready, we can run Conduit:
132129
$ conduit run
133130
```
134131

135-
Conduit is now running the pipeline. Let's check the contents of the `destination.txt` using:
132+
Once Conduit starts running the pipeline, every second, you should see a log entry like this:
136133

137134
```shell
138-
tail -f destination.txt | jq
135+
2025-06-11T12:37:28+00:00 INF component=plugin.standalone connector_id=example-pipeline:example-destination plugin_name=conduit-connector-log record={"key":"aHlkYXRvcG5ldW1hdG9seXRpYw==","metadata":{"conduit.source.connector.id":"example-pipeline:example-source","opencdc.createdAt":"1749638247540840000","opencdc.payload.schema.subject":"example-pipeline:example-source:payload","opencdc.payload.schema.version":"1","opencdc.readAt":"1749638248541754000"},"operation":"create","payload":{"after":{"airline":"elytrorrhagia","scheduledDeparture":"2025-06-11T10:37:27.540841Z"},"before":null},"position":"Mg=="}
139136
```
140137

141-
Every second, you should see a JSON object like this:
138+
This log entry is Conduit's way of showing you the data that was generated by the generator connector. If we look into the `record` field, we can see the following JSON object:
142139

143-
```shell
140+
141+
```json
144142
{
145-
"position": "MjU=",
146-
"operation": "create",
143+
"key": "aHlkYXRvcG5ldW1hdG9seXRpYw==",
147144
"metadata": {
148145
"conduit.source.connector.id": "example-pipeline:example-source",
149-
"opencdc.createdAt": "1730801194148460912",
146+
"opencdc.createdAt": "1749638247540840000",
150147
"opencdc.payload.schema.subject": "example-pipeline:example-source:payload",
151-
"opencdc.payload.schema.version": "1"
148+
"opencdc.payload.schema.version": "1",
149+
"opencdc.readAt": "1749638248541754000"
152150
},
153-
"key": "cHJlY2VwdG9yYWw=",
151+
"operation": "create",
154152
"payload": {
155-
"before": null,
156153
"after": {
157-
"airline": "wheelmaker",
158-
"scheduledDeparture": "2024-11-05T10:06:34.148469Z"
159-
}
160-
}
154+
"airline": "elytrorrhagia",
155+
"scheduledDeparture": "2025-06-11T10:37:27.540841Z"
156+
},
157+
"before": null
158+
},
159+
"position": "Mg=="
161160
}
162161
```
163162

@@ -168,18 +167,25 @@ holds the data being streamed as well as other data and metadata. In the
168167

169168
```json
170169
{
171-
"airline": "wheelmaker",
172-
"scheduledDeparture": "2024-11-05T10:06:34.148469Z"
170+
"airline": "elytrorrhagia",
171+
"scheduledDeparture": "2025-06-11T10:37:27.540841Z"
173172
}
174173
```
175174

176175
The pipeline will keep streaming the data from the generator source connector to
177-
the file destination connector as long as Conduit is running. To stop Conduit,
176+
the log destination connector as long as Conduit is running. To stop Conduit,
178177
press `Ctrl + C` (on a Linux OS, or the equivalent on other operating systems). This will
179178
trigger a graceful shutdown that stops reads from source connectors and waits
180179
for records that are still in the pipeline to be acknowledged. The next time
181180
Conduit starts, it will start reading data from where it stopped.
182181

182+
183+
:::tip
184+
Run `conduit pipelines init --help` to see how you can customize the pipeline
185+
configuration file that's being generated.
186+
:::
187+
188+
183189
## What's next?
184190

185191
Now that you've got the basics of running Conduit and creating a pipeline

docs/1-using/0-installing-and-running.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ First, download
6363
the [latest Conduit release](https://github.com/ConduitIO/conduit/releases/latest)
6464
for your platform.
6565

66-
Let's say you downloaded `conduit_0.13.6_Windows_x86_64.zip`.
66+
Let's say you downloaded `conduit_0.14.0_Windows_x86_64.zip`.
6767

6868
### Unzip the archive
6969

7070
```shell
71-
tar -xf conduit_0.13.6_Windows_x86_64.zip
71+
tar -xf conduit_0.14.0_Windows_x86_64.zip
7272
```
7373

7474
### Run
@@ -122,7 +122,7 @@ Before you can build Conduit from source, you need to have the latest version of
122122
1. Start by downloading the source code from the latest stable release on the Conduit [Releases Page](https://github.com/ConduitIO/conduit/releases/latest). Alternatively, you can run this command to automatically download the latest stable source to your current directory:
123123

124124
```shell
125-
$ TAG=v0.13.6; curl -o conduit.tar.gz -L https://github.com/ConduitIO/conduit/archive/refs/tags/$TAG.tar.gz
125+
$ TAG=v0.14.0; curl -o conduit.tar.gz -L https://github.com/ConduitIO/conduit/archive/refs/tags/$TAG.tar.gz
126126
```
127127

128128
A file called `conduit.tgz` will be in your current directory. The next step is to expand the source:
@@ -136,7 +136,7 @@ name might be different between releases since it's tied to the latest git sha
136136
for the commit.
137137

138138
```shell
139-
$ cd conduit-0.13.6
139+
$ cd conduit-0.14.0
140140
```
141141

142142
Now build the project:
@@ -166,7 +166,7 @@ on port 8080:
166166
`:::::::: ::::::::‘
167167
`:::: ::::‘
168168
`:::::....:::::‘
169-
`::::::::::‘ Conduit v0.13.6 linux/amd64
169+
`::::::::::‘ Conduit v0.14.0 linux/amd64
170170
‘‘‘‘
171171
2025-01-10T09:40:07+00:00 INF All 0 tables opened in 0s component=badger.DB
172172
2025-01-10T09:40:07+00:00 INF Discard stats nextEmptySlot: 0 component=badger.DB

0 commit comments

Comments
 (0)