skillfed

aws-kinesis-agg

Python module to assist in taking advantage of the Kinesis message aggregation format for both aggregation and deaggregation.

aws-kinesis-agg v1.2.3 207.6K downloads/30d#9,546 on PyPI379
Permissive license Apache-2.0 DORMANT released

What it is and what it does

aws_kinesis_agg provides Python classes to pack multiple Kinesis user records into aggregated records using the Kinesis Aggregated Record Format, and to unpack aggregated records back into individual user records. On the producer side, it offers both iterative and callback-based aggregation modes, letting you batch records efficiently before sending to Kinesis; on the consumer side, it deaggregates records received from Kinesis (including those from the Kinesis Producer Library) into their original form.

The package is designed to reduce transmission costs and improve throughput by combining multiple small records into larger ones that fit within a single PutRecord request. It depends only on protobuf for serialization. The documentation cautions that aggregation is suitable only for low-value, non-critical messages; it is not recommended for sensitive data or scenarios where every message must be guaranteed delivery, especially when using the Kinesis Client Library or AWS Lambda for processing.

Use it for:

  • Batch small telemetry or log events into aggregated Kinesis records to reduce API call costs and improve producer throughput.
  • Deaggregate records received from Kinesis streams or Lambda events that were created by the Kinesis Producer Library.
  • Build a producer application that packs records iteratively, checking byte size or record count to trigger transmission when full.
  • Implement callback-based aggregation to automatically send packed records to Kinesis as soon as they reach target size.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Aggregates and deaggregates Kinesis records using the Kinesis Aggregated Record Format, allowing efficient batch transmission of data to Amazon Kinesis.

Yes, if you are building a Kinesis producer and need to optimize throughput and costs through record aggregation, and your data is non-critical or can tolerate occasional loss. No, if you require active maintenance, modern Python version support guarantees, or are processing sensitive data where every message must be reliably delivered. The dormant maintenance status and lack of recent updates mean you should verify compatibility with your protobuf and Python versions before adopting.

Install

aws-kinesis-agg on PyPI

pip

pip install aws-kinesis-agg

uv

uv add aws-kinesis-agg

poetry

poetry add aws-kinesis-agg

Installing aws-kinesis-agg

Before you install

Low install friction with a single runtime dependency (protobuf). Maintenance is dormant—last release was 2022-06-10 and last commit 2024-10-04—so expect no active bug fixes or feature updates, though the codebase is stable and marked Production/Stable.

License in practice

Apache-2.0 is permissive; you can use this in commercial and proprietary projects with minimal restrictions, provided you include a copy of the license and note any modifications.

Quickstart

pip install aws_kinesis_agg

import aws_kinesis_agg.aggregator

kinesis_aggregator = aws_kinesis_agg.aggregator.RecordAggregator()
result = kinesis_aggregator.add_user_record('partition_key', b'data', None)
if result:
    pk, ehk, data = result.get_contents()
    # Send to Kinesis

Requires protobuf to be installed (handled automatically by pip); Python 2.7 or 3.6+ support as stated in classifiers, but compatibility with newer versions is unverified.

Verify before relying

  • Whether the package remains compatible with current versions of protobuf and modern Python versions beyond 3.6.
  • Real-world data loss scenarios mentioned in the documentation and whether they apply to your use case.

Package facts

License Apache-2.0 (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 1 — protobuf
Maintenance dormant — 1,526 days since the last release
Last repo commit
First released
Downloads 207,582/month — #9,546 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: aws_kinesis_agg-1.2.3-py3-none-any.whl

Keywords: aws, kinesis, aggregation, deaggregation, kpl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2.7Programming Language :: Python :: 3.6Topic :: Software Development :: Libraries :: Python ModulesTopic :: Utilities

Tags

kinesis record aggregationkinesis deaggregationkinesis batch recordskinesis producer aggregationkinesis throughput optimizationkinesis message packingkinesis kpl format
aws-kinesisdata-aggregationstream-processing

More Python Modules packages

idna

Converts domain names between Unicode and…

permissive · top 100 on PyPI

setuptools

Setuptools is a Python build backend and…

permissive · top 100 on PyPI

PyYAML

PyYAML parses and emits YAML 1.1 data format,…

permissive · top 100 on PyPI

pydantic

Pydantic validates Python data structures…

permissive · top 100 on PyPI

annotated-types

Provides reusable metadata objects for use with…

permissive · top 100 on PyPI

typing-inspection

Provides runtime tools to inspect and…

permissive · top 100 on PyPI

aws-cdk.aws-kinesis

Defines AWS Kinesis data streams as…

permissive · top 15,000 on PyPI

aws-logging-handlers

Routes Python logging records to AWS S3 and…

permissive · top 15,000 on PyPI

aws-cdk.aws-kinesisfirehose-alpha

Provides AWS CDK constructs for defining Amazon…

permissive · top 15,000 on PyPI

aws-cdk.aws-kinesisfirehose-destinations-alpha

Provides AWS CDK constructs for configuring…

permissive · top 15,000 on PyPI

s3transfer

s3transfer manages concurrent uploads and…

permissive · top 100 on PyPI

aws-cdk.aws-kinesisanalytics-flink-alpha

Provides AWS CDK constructs for defining and…

permissive · top 15,000 on PyPI

s3torchconnector

Provides PyTorch dataset primitives and…

permissive · top 5,000 on PyPI

s3torchconnectorclient

Internal S3 client implementation providing…

permissive · top 5,000 on PyPI

logging-json

Formats Python logging records as JSON output,…

permissive · top 15,000 on PyPI

aws-cdk.aws-logs

Provides AWS CDK constructs for creating and…

permissive · top 15,000 on PyPI