Federated data mesh framework for proof-gated, exactly-once Iceberg data product publication on AWS Lambda.
Project description
Serverless Data Mesh
Federated data mesh lakehouse publication on AWS Lambda - with cryptographic proof, not just green job logs.
An open Python framework for domain-oriented, federated data mesh teams on AWS. Implements data as a product, self-serve write infrastructure, and federated computational governance at the Iceberg lakehouse layer.
- Producer domains publish governed data products
- Steward notaries enforce mesh contracts with VRP proofs
- Publisher zones expose consumer-ready Iceberg data products
Introduces the Vaquar Pattern (PVDM): Physical → Verify → Durable → Metadata. Invariant: commit_metadata ⟹ VRP = PASS.
Install
pip install serverless-data-mesh
serverless-data-mesh demo # <60s local PVDM demo, no AWS
serverless-data-mesh new --template medallion --output my-mesh
serverless-data-mesh apply --contract my-mesh/mesh.yaml --output my-mesh/generated
pip install "serverless-data-mesh[rules]" # + SparkRules on Lambda
pip install "serverless-data-mesh[spark]" # + PySpark + SparkRules
pip install "serverless-data-mesh[all]" # rules + spark
pip install "serverless-data-mesh[dev]" # pytest, ruff, pre-commit
Works on Windows, Mac, and Linux. Uses veridata-recon cryptographic VRP when wheels are available; pure-Python fallback otherwise (same PASS/FAIL gate).
What it solves
| Problem | Answer |
|---|---|
| Silent data loss on backfill | VRP FAIL blocks Iceberg snapshot |
| "Job succeeded" is not proof | Cryptographic multiset proof per chunk |
| Lambda 15-minute limit | Durable Execution + Step Functions (90+ min) |
| Retry duplicates data | IceGuard rollback + workload_id checkpoints |
| Central ETL bottleneck | Per-domain Lambda writer + transaction boundary |
| Federated blast radius | Producer · Steward · Publisher accounts |
Building blocks
| Package | Role |
|---|---|
| iceguard | Physical SafeWriter, timeout rollback, S3 resume |
| veridata-recon | VRP proof generation and validation |
| aws-durable-execution-sdk-python | Cross-invocation step replay |
| pyiceberg | Glue Iceberg REST metadata via GlueCatalogConnector |
| sparkrules | Optional DRL business rules ([rules] extra) |
Quick example
from serverless_data_mesh import (
IceGuardDurableCoordinator,
DomainTransactionBoundary,
VRPProofGenerator,
)
boundary = DomainTransactionBoundary(
domain_id="orders-domain",
source_namespace="raw_orders",
target_table="orders_curated",
partition_spec={"dt": "2026-06-14"},
)
coordinator = IceGuardDurableCoordinator(
durable_context=durable_ctx,
lambda_context=lambda_ctx,
proof_generator=VRPProofGenerator(),
catalog_adapter=glue_adapter,
)
outcome = coordinator.run_workload(workload)
Optional extras
| Extra | Adds |
|---|---|
rules |
SparkRules DRL on Lambda |
spark |
PySpark + SparkRules |
all |
rules + spark |
dev |
pytest, ruff, mypy, pre-commit |
publish |
build, twine |
Documentation
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
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 serverless_data_mesh-1.0.0.tar.gz.
File metadata
- Download URL: serverless_data_mesh-1.0.0.tar.gz
- Upload date:
- Size: 12.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3a9cf01d693351738b3d8fbaa61b5495eb51f8a6d2c100408b35b27a327e3a1
|
|
| MD5 |
1f21bf8ae5c6071854116ef075472ea8
|
|
| BLAKE2b-256 |
06558886dff1d8f4b9157eb1bb915561a2a731c234904e8f7048707b62df8649
|
Provenance
The following attestation bundles were made for serverless_data_mesh-1.0.0.tar.gz:
Publisher:
publish.yml on vaquarkhan/aws-serverless-datamesh-framework
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
serverless_data_mesh-1.0.0.tar.gz -
Subject digest:
f3a9cf01d693351738b3d8fbaa61b5495eb51f8a6d2c100408b35b27a327e3a1 - Sigstore transparency entry: 1822280330
- Sigstore integration time:
-
Permalink:
vaquarkhan/aws-serverless-datamesh-framework@c0c4800efce21147f7402a94a7ee55fedbd5b3e3 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/vaquarkhan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c0c4800efce21147f7402a94a7ee55fedbd5b3e3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file serverless_data_mesh-1.0.0-py3-none-any.whl.
File metadata
- Download URL: serverless_data_mesh-1.0.0-py3-none-any.whl
- Upload date:
- Size: 69.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ef3a6131f2892120fbdb3f7407b532509109a6a1e02e4fb8441166351dd8772
|
|
| MD5 |
10c35caeb3838c8ac8495b588bf7d35e
|
|
| BLAKE2b-256 |
14ec6b3caaaf0635a14a21d1cb6d1ed675ff90b9b0902fa9dffffaf72e3b54a9
|
Provenance
The following attestation bundles were made for serverless_data_mesh-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on vaquarkhan/aws-serverless-datamesh-framework
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
serverless_data_mesh-1.0.0-py3-none-any.whl -
Subject digest:
0ef3a6131f2892120fbdb3f7407b532509109a6a1e02e4fb8441166351dd8772 - Sigstore transparency entry: 1822280339
- Sigstore integration time:
-
Permalink:
vaquarkhan/aws-serverless-datamesh-framework@c0c4800efce21147f7402a94a7ee55fedbd5b3e3 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/vaquarkhan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c0c4800efce21147f7402a94a7ee55fedbd5b3e3 -
Trigger Event:
release
-
Statement type: