Skip to content

codedelta1824/NetworkPipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Python Network Event Pipeline

Overview

This project is a minimal in-memory network event pipeline written entirely in Python. It demonstrates core concepts of networking, asynchronous concurrency, backpressure, batching, and event processing without requiring a database.

The system is designed for learning purposes and is fully self-contained, legal, and safe. Events are sent by producers, processed asynchronously by worker tasks, and optionally persisted to JSON/TXT files. Runtime metrics such as throughput and latency are maintained in memory. The project includes a simple CLI for starting/stopping the server, launching producers, and monitoring metrics.

Features

  • Async TCP server for accepting newline-delimited JSON events.
  • Bounded asyncio queue for backpressure management.
  • Worker pool for concurrent event processing and optional batching.
  • Validator for event size, schema, and optional token-based security.
  • In-memory metrics: total events, latency, throughput.
  • Optional persistent storage to JSON/TXT files.
  • CLI menu for starting/stopping server, launching producers, and monitoring metrics.
  • Fully modular: separated into cli.py, main.py, pipeline.py, and storage.py.

Project Structure

Python-Network-Event-Pipeline/
├── Program Files/
│   ├── cli.py
│   ├── main.py
│   ├── pipeline.py
│   └── storage.py
├── Test Cases/   
│   │   ├── sample_events_1.json
│   └── Results/
│       └── performance_summary.csv
├── Docs/
│   ├── Software Design Document.pdf
└── README.md

Contact

For questions about contributions or details of the project, contact the repository owner at: codedelta1824@gmail.com.

About

A minimal Python-based network event pipeline demonstrating async TCP communication, backpressure handling, and concurrent event processing. Features modular architecture, in-memory metrics, optional file persistence, and a CLI interface, making it ideal for learning scalable backend system design.

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages