Skip to main content

Meridian Storage Streaming

CI License Python

meridian-storage-streaming is the provider-neutral Meridian V1 streaming Catalog package. It owns Stream, Subscription, and ConsumerGroup Resources; Event, Delivery, Position, and opaque Cursor Data; mapping-first Expressions; versioned Operations; Capability requirements; normalized failures; policy and evidence hook contracts; and a reusable black-box conformance suite.

This repository publishes exactly one Python distribution and contributes only meridian_storage.streaming to the shared PEP 420 namespace. It contains no engine client, engine identifier, deployment configuration, provisioning logic, or lifecycle authority.

Install

python -m pip install meridian-storage-streaming==1.0.1

Python 3.12 or newer is required. Runtime dependencies admit Core >=1.1.0,<2 and Semantics >=2.0.1,<3. The exact tested Core 1.1.0 / Semantics 2.0.1 recipe and public artifact hashes live in compatibility.json and requirements-audit.txt. These are validation evidence; the deployment owns its exact release lock. See the migration rationale.

Mapping-first public interface

streaming = meridian.catalog("streaming")

publish = streaming.publish(
    resource=user_input["stream_resource"],
    data=user_input["event"],
    idempotency_key=user_input.get("idempotency_key"),
)
published = meridian.execute(publish).data

deliveries = meridian.execute(streaming.poll(
    subscription=user_input["subscription_resource"],
    consumer_group=user_input["consumer_group_resource"],
    limit=user_input.get("limit", 100),
    wait_timeout_ms=user_input.get("wait_timeout_ms", 1000),
)).data

for delivery in deliveries:
    handle(delivery["event"])
    meridian.execute(streaming.acknowledge(
        subscription=user_input["subscription_resource"],
        consumer_group=user_input["consumer_group_resource"],
        delivery=delivery["delivery"],
    ))

The seven Streaming data-plane methods are exactly publish, publish_batch, subscribe, poll, acknowledge, negative_acknowledge, and read_range. The released Core registry additionally requires the two common Catalog lifecycle methods publish_schema and create_resource; therefore the installed manifest contains exactly those nine registered methods and no more.

Delivery defaults to at-least-once. Ordering is guaranteed only within one logical partition. Position, DeliveryToken, and Cursor values are opaque and must not be decoded by consumers.

Explicit replay and group position

Replay and ConsumerGroup-position changes are deliberately absent from the Catalog surface. They are separately authorized, serialized, versioned Operations:

from meridian_storage.streaming import GroupPositionTransition, ReplayOperation

replay = ReplayOperation(
    stream=user_input["stream_resource"],
    start=user_input["cursor"],
    limit=500,
    authorization_ref="retention-policy/replay",
    reason="incident-recovery",
).to_operation()

transition = GroupPositionTransition(
    subscription=user_input["subscription_resource"],
    consumer_group=user_input["consumer_group_resource"],
    position=user_input["cursor"],
    expected_position_fingerprint=user_input["expected_fingerprint"],
    authorization_ref="administration-policy/group-position",
    reason="approved-recovery",
).to_operation()

A replay is finite and never silently changes a ConsumerGroup position. A position transition is compare-and-set, policy-gated, and evidence-producing.

Provider conformance

Provider packages supply a small black-box bridge and run the exact same suite:

from meridian_storage.streaming.testing import run_streaming_conformance

report = run_streaming_conformance(target)
assert report.passed

The report covers method normalization, per-logical-partition ordering, at-least-once redelivery, acknowledgement recovery, replay/group separation, Cursor validation and expiry, tenant and policy enforcement, audit-lineage-telemetry evidence, and normalized errors. It contains only logical references and fingerprints.

Design and security boundary

The V1 contracts originated in Meridian HLD revision 56 and Meridian Catalogs and Public Interfaces revision 70. Release 1.0.1 applies the approved public dependency compatibility repair without changing those Streaming contracts. Deployment IaC selects, provisions, secures, backs up, migrates, and owns concrete Engines. Core resolves Bindings and enforces OperationContext scope. This package accepts no endpoint, credential, physical-resource name, deployment state, or engine-native expression.

The complete boundary is documented in Architecture, Contracts, Conformance, and Security.

Development

python -m pip install -e '.[test]'
ruff format --check src tests scripts
ruff check src tests scripts
mypy src
python scripts/verify_contracts.py
pytest --cov=meridian_storage.streaming --cov-report=term-missing
python -m build
python scripts/verify_artifacts.py dist/*
python scripts/verify_boundaries.py
bandit -c pyproject.toml -r src
pip-audit --require-hashes -r requirements-audit.txt

License

Copyright 2026 Meridian contributors. Licensed under Apache License 2.0; see LICENSE and NOTICE.

Metadata

Release files for meridian-storage-streaming 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for meridian-storage-streaming 1.0.1
File Size Uploaded
meridian_storage_streaming-1.0.1.tar.gz 32.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for meridian-storage-streaming 1.0.1
File Interpreter ABI Platform
meridian_storage_streaming-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 81.0 kB

Release files / meridian_storage_streaming-1.0.1.tar.gz

Download URL meridian_storage_streaming-1.0.1.tar.gz
Size 32.4 kB
Tags Source
SHA-256 checksum
How to use checksums
41d7f7844b05ad9ef93d10b47b889d5d1d158ba944ac0fbff8722d9513af9d37
BLAKE2b-256 checksum
How to use checksums
753eb2655cf9c212456883e592d806029f209b2dec53b62012dd86647f195558
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / meridian_storage_streaming-1.0.1-py3-none-any.whl

Download URL meridian_storage_streaming-1.0.1-py3-none-any.whl
Size 48.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a14158255a1594e953fc0929c6476e4b9f1a59c8c7b219470a431cdebdf8582
BLAKE2b-256 checksum
How to use checksums
b65cb3d423820f25dab753cd9dd22375f7acf14e53fb919024bfd2490336593d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page