NexusPipe is a distributed, fault-tolerant pipeline that ingests, processes, and visualizes high-throughput user event data in real-time.
The system consists of four main microservices that communicate asynchronously via Apache Kafka:
- Collector Service (Node.js): A high-performance ingestion endpoint.
- Enrichment Service (Python): Adds contextual data to raw events.
- Analytics Service (Python): Aggregates data for real-time dashboards (Redis) and stores it for historical analysis (PostgreSQL).
- Query API (Node.js): Serves historical data via a REST API and live data via WebSockets.
- Backend: Node.js (Express), Python
- Frontend: React
- Messaging: Apache Kafka
- Databases: Redis (real-time aggregation), MYSQL (historical storage)
- Real-time Communication: WebSockets
- Install Infrastructure: Make sure you have Kafka, Zookeeper, Redis, and PostgreSQL running locally.
- Create Kafka Topics: Run
kafka-topics.sh --create --topic raw-events --bootstrap-server localhost:9092and... --create --topic enriched-events .... - Setup Databases: Create a PostgreSQL database and tables.
- Install Dependencies: Run
npm installorpip install -r requirements.txtin each service directory. - Run Services: Start each of the four backend services in a separate terminal.
- Run UI: Start the React development server.