PixPro
Intelligent image processing platform powered by AI, event-driven architecture, and real-time notifications.
Pure software architecture
Robust backend · No visual UI
Project Overview
AI-powered image processing platform. Problem: processing images in parallel without blocking the UI. Solution: event-driven microservices with Kafka, chosen over Redis Streams for durability and automatic rebalancing (decision matrix). Stack: Node.js, Kafka, Docker, React, MinIO, Keycloak. Result: a 5-person Scrum team, MVP in 8 weeks, live notifications with WebSockets.
Architecture Design

Context Diagram: Users interact with PixPro, which orchestrates authentication, processing, storage, and database.

Container Diagram: React Frontend, Backend API, AI Workers, Kafka, Redis, MinIO, Keycloak, and MongoDB.
Core Modules
Authentication & User Management with Keycloak
SSO and RBAC with Keycloak, including registration, login, and password recovery. The backend validates JWT tokens; the frontend protects routes via context. Integrated with PostgreSQL.
Image Upload & CDN Storage (MinIO)
Individual or batch uploads with preview and progress tracking. Images stored in MinIO (S3 API) with signed URLs. An IStoragePort adapter makes the implementation easy to swap.
Async Processing with Kafka & Ollama
'image-process' event published to Kafka, consumed by Node.js workers that invoke Ollama (YOLO, Stable Diffusion). Results go to 'image-processed' or 'image-processed-error'. Decoupled and scalable architecture.
Real-Time Notifications (WebSockets + Redis Pub/Sub)
Frontend connected via Socket.io to a gateway that listens to Kafka topics. Events delivered to the client through rooms (userId). Redis adapter enables scaling across multiple gateway instances.
Project Organization & Personal Library
Users create projects and assign processed images to them. Metadata includes title, category, and parameters. The backend uses CQRS with pagination, filters, and Redis cache.
Admin Panel & Performance Metrics
Dashboard for administrators showing KPIs: images processed, processing times, queue status, and cache usage. Data aggregated from MongoDB and served via role-protected REST endpoints.
CI/CD Integration & Deployment (Rolling Updates)
GitLab CI/CD pipeline with linting, tests, Docker build, and automatic deployment. Rolling deployment (zero downtime) chosen over Blue-Green due to resource constraints. Health checks ensure stability.