Skip to content

Release v0.3.2

Choose a tag to compare

@thanhtham010891 thanhtham010891 released this 10 Jun 10:22
· 2 commits to main since this release

Focus

0.3.2 turns the refactored 0.3.x core into a tighter release contract.

This release is about hardening what already exists:

  • explicit public boundaries
  • preservation-backed runtime behavior
  • clearer plugin contracts
  • stronger diagnostics, security posture, and performance guardrails

Highlights

Public API boundaries are now frozen more deliberately

Agora now treats the package facades as explicit release contracts:

  • agora
  • agora.core
  • agora.core.<domain>
  • agora.core.runtime as an advanced public facade

Architecture tests now fail when public surfaces drift, when compatibility
exports are undocumented, or when plugin-facing code leaks into underscore
support modules by accident.

Runtime guarantees are preservation-backed end to end

The 0.3.x runtime guarantee matrix is now fully preservation-backed. This
covers lane selection, ordering, checkpoint cadence, DLQ routing, retry
boundaries, shutdown/cancellation behavior, and process/buffered invariants.

This release is therefore much safer for continued internal refactor: the code
can keep moving without reopening ambiguity about preserved runtime semantics.

Observability and health diagnostics are safer

Built-in health payloads now redact and truncate last_error before exposing it
through metrics/health surfaces.

Plugin diagnostics are also clearer:

  • agora plugins list now shows broken entry-points explicitly
  • entry-point key collisions with built-ins/public keys are surfaced as
    diagnostics instead of silently winning by import order
  • agora doctor is more explicit about its trust boundary during config import
    and pipeline-build checks

Plugin contract cleanup is now reflected in code, tests, and docs

The official agora-etl-plugins bundle and the incubating plugin packages now
follow the updated contract more consistently:

  • MANIFEST compatibility binds to AGORA_PLUGIN_MANIFEST_VERSION instead of
    hard-coded stale values
  • package metadata points at the real agora-etl core artifact
  • plugin contract tests now fail when plugin packages depend on internal Agora
    support modules or on legacy module paths that now have public replacements

For 0.3.x, two advanced public plugin modules remain intentionally supported:

  • agora.core.registry for MANIFEST compatibility binding
  • agora.core.retry for shared retry helpers

Benchmark coverage now has a concrete maintenance budget

0.3.2 records the first post-refactor benchmark baseline and a simple perf
budget for future maintenance work.

The benchmark split now covers:

  • file-backed lane throughput
  • runtime orchestration-heavy shapes such as buffered execution, sink fan-out,
    and observability overhead
  • Arrow process transport microbenchmarks

This makes it possible to catch hot-path regressions intentionally instead of
relying on anecdotal before/after impressions.


Upgrade notes

For builders

  • Prefer agora and documented agora.core.<domain> facades over file-level
    modules.
  • Avoid underscore-prefixed imports even if a compatibility export still exists
    in 0.3.x.

For plugin authors

  • Bind MANIFEST compatibility from agora.core.registry.
  • Prefer agora.state, agora.runner, and the documented plugin-contract
    modules in docs/plugins/contract.md.
  • Treat agora.core.registry and agora.core.retry as advanced public plugin
    contracts in 0.3.x.

Deprecated aliases retained through 0.3.x

  • agora.core.runtime.RecordDeliveryCoordinator
  • agora.core.sink._WRITE_OK
  • agora.core.context._NOOP_SPAN_SCOPE
  • agora.core.context._BoundLogger
  • agora.core.context._NoopSpanScope
  • agora.core.context._PipelineSpanScope
  • agora.core.context._normalize_trace_value

These remain compatibility bridges in 0.3.x and are still targeted for
removal in 0.4.0.


Validation

Release validation for 0.3.2 includes:

  • public surface / architecture tests
  • preservation coverage for runtime guarantees and plugin contract behavior
  • package-local CI for agora-etl-plugins
  • benchmark baselines for the canonical Phase 5 scenarios