Reusable data engineering toolkit My personal data infrastructure
DataVolt: Modular Enterprise Data Engineering Framework
Overview
DataVolt is an enterprise-grade framework for building and maintaining scalable data engineering pipelines. It provides a comprehensive suite of tools for data ingestion, transformation, and processing, enabling organizations to standardize their data operations and accelerate development cycles.
Modular VoltModule Architecture
At the core of DataVolt is the concept of VoltModules: modular, domain-scoped directories (mini_dirs) that encapsulate a single use case or data engineering workflow. Each VoltModule follows a consistent internal structure and pattern, making it easy to:
- Reuse, extend, or compose modules for new domains or projects
- Standardize data engineering practices across teams
- Rapidly spin up new pipelines by combining or customizing VoltModules
Repository Structure
Note: The structure below is an illustrative example of how DataVolt is organized around VoltModules and shared utilities. Your actual repository may differ. To view your current structure, use a tool liketreeorlsin your project root.
DataVolt/
โโโ modules/ # Collection of VoltModules (domain-specific mini_dirs)
โ โโโ market_analysis/ # Example VoltModule: Market Analysis
โ โ โโโ init.py
โ โ โโโ ... # Module-specific logic
โ โโโ tokenization/ # Example VoltModule: Tokenization
โ โ โโโ init.py
โ โ โโโ ...
โ โโโ ... # Add or extend VoltModules as needed
โโโ loaders/ # Data Ingestion Layer (shared utilities)
โ โโโ init.py
โ โโโ ...
โโโ preprocess/ # Data Transformation Layer (shared utilities)
โ โโโ init.py
โ โโโ ...
โโโ ext/ # Extension Layer (logging, custom steps, etc.)
โ โโโ logger.py
โ โโโ ...
โโโ ...
- modules/: Houses all VoltModules, each in its own directory, following a common pattern.
- loaders/, preprocess/, ext/: Provide shared utilities and frameworks for use within VoltModules or standalone.
Key Features
- VoltModules: Modular, domain-scoped, and reusable mini_dirs for any data engineering use case
- Rapid Customization: Add, extend, or compose modules to fit evolving requirements
- Standardization: Consistent patterns and internal structure across all modules
- Comprehensive Toolkit: Everything needed for data engineering, from ingestion to advanced analytics
Installation
pip install datavolt
Or with uv:
uv install datavolt
Quick Start
Using a VoltModule
from datavolt.modules.market_analysis import MarketAnalysisModule
module = MarketAnalysisModule(config={...}) result = module.run()
Building Your Own VoltModule
- Create a new directory under
modules/(e.g.,myusecase/) - Add an
init.pyand implement your logic following the VoltModule pattern - Import and use your module as needed
Example: Data Ingestion and Transformation
from datavolt.loaders.csv_loader import CSVLoader
from datavolt.preprocess.pipeline import PreprocessingPipeline
loader = CSVLoader(file_path="data.csv") dataset = loader.load()
pipeline = PreprocessingPipeline([...]) processed_dataset = pipeline.run(dataset)
Extending DataVolt
- Add new VoltModules for new domains or workflows
- Plug in tools (e.g., new loaders, preprocessors) into existing modules
- Compose modules to build complex pipelines
Use Cases
- Market analysis, tokenization, and domain-specific analytics
- Standardized, reproducible data preprocessing
- Scalable machine learning and feature engineering pipelines
- Integration with cloud, SQL, and ML frameworks
Contributing
We welcome contributions! To add a new VoltModule or extend the framework:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-module) - Add your module under
modules/and follow the VoltModule pattern - Commit and push your changes
- Open a Pull Request
License
DataVolt is distributed under the MIT License. See LICENSE for details.
Support
- Documentation: DataVolt Docs
- Issue Tracking: GitHub Issues
- Professional Support: Contact allanw.mk@gmail.com
DataVolt: Empowering Modular Data Engineering Excellence