diff --git a/Cargo.lock b/Cargo.lock
index 553bb088..3864c0b7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -631,7 +631,7 @@ dependencies = [
[[package]]
name = "benchmark-example-node"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-node-api",
"eyre",
@@ -644,7 +644,7 @@ dependencies = [
[[package]]
name = "benchmark-example-sink"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-node-api",
"eyre",
@@ -976,7 +976,7 @@ dependencies = [
[[package]]
name = "communication-layer-pub-sub"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"flume",
"zenoh",
@@ -984,7 +984,7 @@ dependencies = [
[[package]]
name = "communication-layer-request-reply"
-version = "0.2.6"
+version = "0.3.0-rc"
[[package]]
name = "concurrent-queue"
@@ -1343,7 +1343,7 @@ dependencies = [
[[package]]
name = "dora-arrow-convert"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"arrow",
"eyre",
@@ -1351,7 +1351,7 @@ dependencies = [
[[package]]
name = "dora-cli"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"bat",
"clap 4.4.6",
@@ -1375,7 +1375,7 @@ dependencies = [
[[package]]
name = "dora-coordinator"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"clap 4.4.6",
"ctrlc",
@@ -1400,7 +1400,7 @@ dependencies = [
[[package]]
name = "dora-core"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"aligned-vec",
"dora-message",
@@ -1418,7 +1418,7 @@ dependencies = [
[[package]]
name = "dora-daemon"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"aligned-vec",
"arrow-schema",
@@ -1447,7 +1447,7 @@ dependencies = [
[[package]]
name = "dora-download"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"eyre",
"reqwest",
@@ -1476,7 +1476,7 @@ dependencies = [
[[package]]
name = "dora-message"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"arrow-data",
"arrow-schema",
@@ -1487,7 +1487,7 @@ dependencies = [
[[package]]
name = "dora-metrics"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"futures",
"opentelemetry 0.17.0",
@@ -1498,7 +1498,7 @@ dependencies = [
[[package]]
name = "dora-node-api"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"aligned-vec",
"arrow",
@@ -1526,7 +1526,7 @@ dependencies = [
[[package]]
name = "dora-node-api-c"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"arrow-array",
"dora-node-api",
@@ -1537,7 +1537,7 @@ dependencies = [
[[package]]
name = "dora-node-api-cxx"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"cxx",
"cxx-build",
@@ -1547,7 +1547,7 @@ dependencies = [
[[package]]
name = "dora-node-api-python"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"arrow",
"dora-node-api",
@@ -1564,7 +1564,7 @@ dependencies = [
[[package]]
name = "dora-operator-api"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-arrow-convert",
"dora-operator-api-macros",
@@ -1573,14 +1573,14 @@ dependencies = [
[[package]]
name = "dora-operator-api-c"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-operator-api-types",
]
[[package]]
name = "dora-operator-api-cxx"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"cxx",
"cxx-build",
@@ -1589,7 +1589,7 @@ dependencies = [
[[package]]
name = "dora-operator-api-macros"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"proc-macro2",
"quote",
@@ -1598,7 +1598,7 @@ dependencies = [
[[package]]
name = "dora-operator-api-python"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"aligned-vec",
"arrow",
@@ -1612,7 +1612,7 @@ dependencies = [
[[package]]
name = "dora-operator-api-types"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"arrow",
"dora-arrow-convert",
@@ -1621,7 +1621,7 @@ dependencies = [
[[package]]
name = "dora-record"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"chrono",
"dora-node-api",
@@ -1694,7 +1694,7 @@ dependencies = [
[[package]]
name = "dora-runtime"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"aligned-vec",
"arrow",
@@ -1726,7 +1726,7 @@ dependencies = [
[[package]]
name = "dora-tracing"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"eyre",
"opentelemetry 0.18.0",
@@ -3160,7 +3160,7 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
[[package]]
name = "multiple-daemons-example-node"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-node-api",
"eyre",
@@ -3171,14 +3171,14 @@ dependencies = [
[[package]]
name = "multiple-daemons-example-operator"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-operator-api",
]
[[package]]
name = "multiple-daemons-example-sink"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-node-api",
"eyre",
@@ -4502,7 +4502,7 @@ dependencies = [
[[package]]
name = "rust-dataflow-example-node"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-node-api",
"eyre",
@@ -4513,14 +4513,14 @@ dependencies = [
[[package]]
name = "rust-dataflow-example-operator"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-operator-api",
]
[[package]]
name = "rust-dataflow-example-sink"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-node-api",
"eyre",
@@ -4528,7 +4528,7 @@ dependencies = [
[[package]]
name = "rust-ros2-dataflow-example-node"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"dora-node-api",
"dora-ros2-bridge",
@@ -4926,7 +4926,7 @@ dependencies = [
[[package]]
name = "shared-memory-server"
-version = "0.2.6"
+version = "0.3.0-rc"
dependencies = [
"bincode",
"eyre",
diff --git a/Cargo.toml b/Cargo.toml
index 283c412f..e23724c7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -31,31 +31,31 @@ members = [
[workspace.package]
# Make sure to also bump `apis/node/python/__init__.py` version.
-version = "0.2.6"
+version = "0.3.0-rc"
description = "`dora` goal is to be a low latency, composable, and distributed data flow."
documentation = "https://dora.carsmos.ai"
license = "Apache-2.0"
[workspace.dependencies]
-dora-node-api = { version = "0.2.6", path = "apis/rust/node", default-features = false }
-dora-node-api-python = { version = "0.2.6", path = "apis/python/node", default-features = false }
-dora-operator-api = { version = "0.2.6", path = "apis/rust/operator", default-features = false }
-dora-operator-api-macros = { version = "0.2.6", path = "apis/rust/operator/macros" }
-dora-operator-api-types = { version = "0.2.6", path = "apis/rust/operator/types" }
-dora-operator-api-python = { version = "0.2.6", path = "apis/python/operator" }
-dora-operator-api-c = { version = "0.2.6", path = "apis/c/operator" }
-dora-node-api-c = { version = "0.2.6", path = "apis/c/node" }
-dora-core = { version = "0.2.6", path = "libraries/core" }
-dora-arrow-convert = { version = "0.2.6", path = "libraries/arrow-convert" }
-dora-tracing = { version = "0.2.6", path = "libraries/extensions/telemetry/tracing" }
-dora-metrics = { version = "0.2.6", path = "libraries/extensions/telemetry/metrics" }
-dora-download = { version = "0.2.6", path = "libraries/extensions/download" }
-shared-memory-server = { version = "0.2.6", path = "libraries/shared-memory-server" }
-communication-layer-request-reply = { version = "0.2.6", path = "libraries/communication-layer/request-reply" }
-dora-message = { version = "0.2.6", path = "libraries/message" }
-dora-runtime = { version = "0.2.6", path = "binaries/runtime" }
-dora-daemon = { version = "0.2.6", path = "binaries/daemon" }
-dora-coordinator = { version = "0.2.6", path = "binaries/coordinator" }
+dora-node-api = { version = "0.3.0-rc", path = "apis/rust/node", default-features = false }
+dora-node-api-python = { version = "0.3.0-rc", path = "apis/python/node", default-features = false }
+dora-operator-api = { version = "0.3.0-rc", path = "apis/rust/operator", default-features = false }
+dora-operator-api-macros = { version = "0.3.0-rc", path = "apis/rust/operator/macros" }
+dora-operator-api-types = { version = "0.3.0-rc", path = "apis/rust/operator/types" }
+dora-operator-api-python = { version = "0.3.0-rc", path = "apis/python/operator" }
+dora-operator-api-c = { version = "0.3.0-rc", path = "apis/c/operator" }
+dora-node-api-c = { version = "0.3.0-rc", path = "apis/c/node" }
+dora-core = { version = "0.3.0-rc", path = "libraries/core" }
+dora-arrow-convert = { version = "0.3.0-rc", path = "libraries/arrow-convert" }
+dora-tracing = { version = "0.3.0-rc", path = "libraries/extensions/telemetry/tracing" }
+dora-metrics = { version = "0.3.0-rc", path = "libraries/extensions/telemetry/metrics" }
+dora-download = { version = "0.3.0-rc", path = "libraries/extensions/download" }
+shared-memory-server = { version = "0.3.0-rc", path = "libraries/shared-memory-server" }
+communication-layer-request-reply = { version = "0.3.0-rc", path = "libraries/communication-layer/request-reply" }
+dora-message = { version = "0.3.0-rc", path = "libraries/message" }
+dora-runtime = { version = "0.3.0-rc", path = "binaries/runtime" }
+dora-daemon = { version = "0.3.0-rc", path = "binaries/daemon" }
+dora-coordinator = { version = "0.3.0-rc", path = "binaries/coordinator" }
dora-ros2-bridge = { path = "libraries/extensions/ros2-bridge" }
dora-ros2-bridge-python = { path = "libraries/extensions/ros2-bridge/python" }
arrow = "48.0.0"
diff --git a/README.md b/README.md
index 169b063d..6cfb0338 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,6 @@