Skip to main content

Safely consume and process data.

Project description

https://github.com/lostclus/aiosafeconsumer/actions/workflows/tests.yml/badge.svg Current version on PyPi PyPI - Python Version

aiosafeconsumer is a library that provides abstractions and some implementations to consume data somewhere and process it.

Features:

  • Based on AsyncIO

  • Type annotated

  • Use logging with contextual information

Abstractions:

  • DataSource - waits for data and returns batch of records using Python generator

  • DataProcessor - accepts batch of records and precess it

  • DataTransformer - accepts batch of records and transform it and calls another processor to precess it. Extends DataProcessor

  • Worker - abstract worker. Do a long running task

  • ConsumerWorker - connects DataSource and DataProcessor. Extends Worker

  • DataWriter - base abstraction to perform data synchronization. Extends DataProcessor

Current implementations:

  • KafkaSource - read data from Kafka

  • RedisWriter - synchronize data in Redis

  • ElasticsearchWriter - synchronize data in Elasticsearch

  • WorkerPool - controller to setup and run workers in parallel. Can handle worker failures and restarts workers when it fails or exits.

Install:

pip install aiosafeconsumer

Install with Kafka:

pip install aiosafeconsumer[kafka]

Install with Redis:

pip install aiosafeconsumer[redis]

Install with Elasticsearch:

pip install aiosafeconsumer[elasticsearch]

Install with MongoDB:

pip install aiosafeconsumer[mongo]

Links:

TODO:

  • PostgreSQL writer

  • ClickHouse writer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiosafeconsumer-0.0.6.tar.gz (34.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiosafeconsumer-0.0.6-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file aiosafeconsumer-0.0.6.tar.gz.

File metadata

  • Download URL: aiosafeconsumer-0.0.6.tar.gz
  • Upload date:
  • Size: 34.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for aiosafeconsumer-0.0.6.tar.gz
Algorithm Hash digest
SHA256 aeb9a57d7c1c274621d9edec46e032067b67814b8558c5f4fe75081b404d7db0
MD5 bc1df3944dddbcc9230548ee9de7cdbb
BLAKE2b-256 742b16238517bf6fb523e73c3fe716fbf9bcfd7e5ccea1bf11e2ab76950b5196

See more details on using hashes here.

File details

Details for the file aiosafeconsumer-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for aiosafeconsumer-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 246ac7564309bac1b850195174ace1f96a1f1159995193f227ba2146fd7d4fff
MD5 c137b123a3563c5ecaed18ecc25c3a75
BLAKE2b-256 2bbfeeccadbf1425a569b289b4790ffdc4edd53455496e979046b36c45c86dc7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page