Skip to content

Releases: spate-etl/spate

v0.3.0

Choose a tag to compare

@spate-release spate-release released this 11 Oct 22:46
Immutable release. Only release title and notes can be modified.
df4c749

Read the release post for the highlights. The full notes for this release are in CHANGELOG.md.

Breaking changes

  • The schema registry trusts a private CA with registry.tls.root_ca (spate-avro) ([#757])
  • The S3 source reads a split that covers a byte range of one object (spate-s3, spate-core, spate-json) ([#858])
  • Registry URL credentials (spate-avro) ([#927])
  • ClickHouse insert columns from the row type (spate-clickhouse) ([#407])
  • ClickHouse schema checks on every sink (spate-clickhouse) ([#413])
  • A ClickHouse URL with credentials is rejected at load (spate-clickhouse) ([#772])
  • Injectable clocks move to spate_core::clock (spate-core, spate-coordination) ([#696])
  • The NATS store rejects an existing bucket with a different replica count (spate-coordination) ([#965])
  • Portable descriptor budget (spate-s3) ([#896])
  • The S3 source reads a large object as several byte-range splits (spate-s3) ([#862])
  • SimpleAggregateFunction column support (spate-clickhouse) ([#486])
  • The full feature (spate) ([#607])
  • Truncated datum rejection (spate-avro) ([#921])
  • Pending batches per partition (spate-core) ([#349])
  • Failure reports name the tenancy they report (spate-core, spate-coordination, spate-test, spate-s3) ([#955])
  • A stop ends coordination waits on an unresponsive store (spate-core, spate-coordination, spate-s3) ([#969])
  • A leader keeps its election when its plan-record write's reply is lost (spate-coordination) ([#966])
  • In-flight byte budget usage (spate-core) ([#336])
  • Kafka metrics follow partition ownership (spate-kafka) ([#344])
  • Fatal operator errors and failed flushes (spate-core) ([#353])
  • A sink failure names the sink and its error (spate-core) ([#721])
  • NATS ws:// servers with TLS configured (spate-coordination) ([#756])

Added

  • Admin server address (spate-core) ([#338])
  • ClickHouse row derive (spate-clickhouse-derive) ([#406])
  • A solo run takes its coordinator tuning from the file (spate-coordination, spate-s3) ([#868])
  • A coordination: section configures the coordination store (spate-core, spate-coordination, spate-s3) ([#782])
  • Split lease headroom histogram (spate-coordination, spate-core) ([#982])
  • Coordination stores can declare a polled watch (spate-coordination) ([#812])
  • Find an error in a source chain (spate-core) ([#720])
  • Decoder access for fuzz testing (spate-s3, spate-coordination) ([#322])
  • Kafka partition fetch state (spate-kafka) ([#343])
  • Waiting on captured logs (spate-test) ([#792])
  • Fixtures for stage and config tests (spate-test) ([#786])
  • Log capture for tests (spate-test) ([#572])
  • Metric assertions for tests (spate-test) ([#791])
  • Classify a rustls rejection with one macro (spate-core) ([#733])

Changed

  • Avro map allocation (spate-avro) ([#540])
  • A schema registry URL that is not http:// or https:// fails at load (spate-avro) ([#873])
  • Coordination log targets (spate-coordination) ([#897])
  • A watch delete orders above what its store handle saw (spate-coordination) ([#968])
  • Object keys in the duplicate-key guard (spate-json) ([#591])
  • Duplicate-key guard allocation (spate-json) ([#542])
  • Minimum Rust version (all crates) ([#491])
  • NATS listings read a prefix in one pass (spate-coordination) ([#977])
  • Replan seeding (spate-coordination) ([#650])
  • Dependency requirements (spate-avro, spate-clickhouse, spate-clickhouse-derive, spate-coordination, spate-core, spate-json, spate-kafka, spate-s3)

Deprecated

  • Split coordination is deprecated (spate, spate-coordination, spate-core, spate-s3, spate-test) ([#1109])

Fixed

  • A schema registry that rejects the client stops the pipeline (spate-core, spate-avro) ([#669])
  • A registry schema that is not Avro no longer holds the batch (spate-avro) ([#873])
  • A TLS alert that rejects the handshake stops the pipeline in the Avro deserializer (spate-avro) ([#726])
  • The Avro registry client starts with an empty system trust store (spate-avro) ([#635])
  • ClickHouse certificate verification failures stop the pipeline (spate-clickhouse) ([#630])
  • Codec errors stop the pipeline (spate-clickhouse) ([#570])
  • Default compression works on ClickHouse 26.9 (spate-clickhouse) ([#796])
  • ClickHouse verifies https:// replicas against the system trust store (spate-clickhouse) ([#626])
  • A TLS alert that rejects the handshake is fatal in the ClickHouse sink (spate-clickhouse, spate-core, spate-test) ([#722])
  • A split lease whose renewal reply was lost is renewed again in the same heartbeat (spate-coordination) ([#919])
  • Slow store reads no longer stop lease renewals (spate-coordination) ([#811])
  • A commit after a commit whose reply was lost stores its own state (spate-coordination) ([#994])
  • A coordinator dropped while holding splits can hand them back through a store that opens connections (spate-coordination) ([#809])
  • A retryable store error during leader election leaves the coordinator running (spate-coordination) ([#884])
  • Failure report after a completed split (spate-coordination) ([#935])
  • A fatal store error after startup stops the coordinator (spate-coordination) ([#809])
  • A new leader does not run the planner over a final plan (spate-coordination) ([#951])
  • A graceful stop hands back leadership and membership (spate-core, spate-coordination) ([#856])
  • A leader keeps updating its own assignment after an older-generation write to its record (spate-coordination) ([#948])
  • A worker's leftover lease no longer quarantines a released split (spate-coordination) ([#950])
  • A worker that releases every split it holds stays out of the fleet (spate-coordination) ([#861])
  • A departed worker's splits are reassigned when rebalance_delay ends (spate-coordination) ([#809])
  • A coordinator applies the watch events it has already received before it acts on them (spate-coordination) ([#958])
  • A release after this worker's own failure report counts as forced (spate-coordination) ([#917])
  • A failure report sent again after its reply was lost counts once (spate-coordination) ([#942])
  • A quarantining failure report sent again after its reply was lost counts once (spate-coordination) ([#943])
  • A failure report the coordinator answers as retryable is offered again (spate-core) ([#903])
  • A throttled seed write no longer holds back the rest of the plan (spate-coordination) ([#872])
  • A split lease survives one failed renewal (spate-coordination) ([#996])
  • A worker no longer claims a split that finished or ran out of attempts while its view lagged (spate-coordination) ([#809])
  • A commit made under an ended tenancy no longer lands in the next one (spate-coordination) ([#1026])
  • A split lease that a later claim or release replaced keeps no lane (spate-coordination) ([#954])
  • A shared instance_id is fatal on a split's last attempt (spate-coordination) ([#1047])
  • Assigned splits stay with their worker until the claim is seen (spate-coordination) ([#821])
  • A claim whose record write's reply was lost keeps the split (spate-coordination) ([#915])
  • A failed election write and a lost leader-key delete are read back (spate-coordination) ([#898])
  • A leader keeps leading when a renewal applied but its reply was lost (spate-coordination) ([#887])
  • A commit after a commit whose reply was lost keeps the split (spate-coordination) ([#901])
  • A release after a write whose reply was lost hands the split back (spate-coordination) ([#888])
  • Leader cleanup retries (spate-coordination) ([#920])
  • A split handed back at teardown keeps its delivery attempts (spate-coordination) ([#762])
  • Chunk buffer recovery after an encoder error (spate-core) ([#385])
  • The S3 source's final commit at shutdown ends within op_timeout (spate-core, spate-coordination, spate-s3, spate-test) ([#961])
  • First fatal error reported (spate-core) ([#369])
  • First shard finalization error reported (spate-core) ([#367])
  • Consistent record framing after a decode error (spate-s3, spate-core) ([#329])
  • A refused poison report no longer outlives its split (spate-core) ([#905])
  • Int256 values for Decimal256 columns (spate-clickhouse) ([#411])
  • Kafka client creation errors no longer print rejected values (spate-kafka) ([#906])
  • The Kafka source's assignment deadline error names the last consumer error (spate-kafka) ([#729])
  • Kafka client logs (spate-kafka) ([#666])
  • A Kafka partition no longer stops fetching after an assignment (spate-kafka) ([#702])
  • The Kafka sink logs each librdkafka error once (spate-kafka) ([#773])
  • A rejected SASL login or TLS handshake fails the Kafka sink's batch (spate-kafka) ([#734])
  • A consumer librdkafka has failed stops the Kafka source (spate-kafka) ([#768])
  • A rejected TLS handshake stops the Kafka source (spate-kafka) ([#729])
  • Kafka rejects OpenSSL-only builtin.features flags without TLS (spate-kafka) ([#618])
  • Kafka rejects the unsecured OAUTHBEARER token handler without TLS (spate-kafka) ([#616])
  • Kafka TLS trusts the system CA bundle with vendored OpenSSL (spate-kafka) ([#621])
  • MemoryStore keeps reporting lease expiry after the runtime that first used it stops (spate-coordination) ([#809])
  • Complete counter name list (spate-core) ([#336])
    -...
Read more

v0.2.0

Choose a tag to compare

@spate-release spate-release released this 22 Aug 18:37
Immutable release. Only release title and notes can be modified.
66cf504

CHANGELOG.md has what changed and why.

All crates release together at this version.

v0.1.0

Choose a tag to compare

@MarcusKainth MarcusKainth released this 27 Jul 21:23
01c8bbc

CHANGELOG.md has what changed and why.

All nine crates release together at this version.