Meridian Storage Streaming
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.0
Python 3.12 or newer is required. The release pins the published
meridian-storage-core==1.0.0 and meridian-storage-semantics==1.0.0
contracts exactly; their wheel and source-distribution digests are recorded in
compatibility.json.
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 implementation is pinned to Meridian HLD revision 56 and Meridian Catalogs and Public Interfaces revision 70. 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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meridian_storage_streaming-1.0.0.tar.gz.
File metadata
- Download URL: meridian_storage_streaming-1.0.0.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5b259c03ddf82dde8d1e6696e492a6c62f540151633b722107e8518c7cb5831
|
|
| MD5 |
df4376e28287f1ecaa7c1aaaa24be045
|
|
| BLAKE2b-256 |
a9d3d7e36ee53692627d126a3393580d817e49cbbde2430eec0220b783131556
|
Provenance
The following attestation bundles were made for meridian_storage_streaming-1.0.0.tar.gz:
Publisher:
release.yml on zephytiju/MeridianStreaming
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meridian_storage_streaming-1.0.0.tar.gz -
Subject digest:
a5b259c03ddf82dde8d1e6696e492a6c62f540151633b722107e8518c7cb5831 - Sigstore transparency entry: 2591181998
- Sigstore integration time:
-
Permalink:
zephytiju/MeridianStreaming@bfd22e25f87907221aabcacfca5fe9e7c2af772b -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/zephytiju
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bfd22e25f87907221aabcacfca5fe9e7c2af772b -
Trigger Event:
push
-
Statement type:
File details
Details for the file meridian_storage_streaming-1.0.0-py3-none-any.whl.
File metadata
- Download URL: meridian_storage_streaming-1.0.0-py3-none-any.whl
- Upload date:
- Size: 48.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fa802d1f4d69082b1bb2643856f82db9159ebe92fcd819aa529c143cd8d51eb
|
|
| MD5 |
1062ddaa780c8065ac423912f26d7c93
|
|
| BLAKE2b-256 |
d912390ea040c41e7dcf23a79c6eb88e624a9db268e11206c53b2616d9c266ef
|
Provenance
The following attestation bundles were made for meridian_storage_streaming-1.0.0-py3-none-any.whl:
Publisher:
release.yml on zephytiju/MeridianStreaming
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meridian_storage_streaming-1.0.0-py3-none-any.whl -
Subject digest:
8fa802d1f4d69082b1bb2643856f82db9159ebe92fcd819aa529c143cd8d51eb - Sigstore transparency entry: 2591182397
- Sigstore integration time:
-
Permalink:
zephytiju/MeridianStreaming@bfd22e25f87907221aabcacfca5fe9e7c2af772b -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/zephytiju
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bfd22e25f87907221aabcacfca5fe9e7c2af772b -
Trigger Event:
push
-
Statement type: