Back to Projects

CommerceFlow
(Event-Driven E-Commerce)

A production-grade, highly scalable e-commerce microservices ecosystem utilizing Kafka, Saga Orchestration, and the Transactional Outbox pattern.

The Challenge

In a large-scale e-commerce platform, traditional synchronous API calls between microservices create fragile architectures prone to cascading failures and data inconsistencies (e.g., charging a card but failing to reserve stock).

CommerceFlow solves this using a purely Event-Driven Architecture. By implementing the Transactional Outbox pattern, I eliminated two-phase commit overhead while guaranteeing 'at-least-once' message delivery. Complex checkout workflows are handled by a central Saga Orchestrator that uses Kafka to confidently manage distributed transactions, automatically executing compensating rollbacks if any step fails.

System Architecture

sequenceDiagram
    participant User
    participant OrderService as Order Service (Saga)
    participant Kafka
    participant Inventory as Inventory Service
    participant Payment as Payment Service

    User->>OrderService: POST /orders
    OrderService->>Kafka: Emit ORDER_PLACED (Outbox)
    Kafka->>Inventory: Consume Event
    Inventory-->>Kafka: Emit INVENTORY_RESERVED
    Kafka->>OrderService: Update Saga State
    OrderService->>Kafka: Emit PAYMENT_INITIATED
    Kafka->>Payment: Consume Event
    Payment-->>Kafka: Emit PAYMENT_COMPLETED
    Kafka->>OrderService: Finalize Order
          

Key Features

Saga Pattern Orchestration

A centralized Order Service coordinates complex, multi-service checkout workflows and automated rollbacks via Kafka.

Transactional Outbox Pattern

Guarantees atomic cross-boundary database/event-bus writes, ensuring zero data loss during high load.

CQRS & Event Sourcing

The Order system stores an immutable append-only event log to reconstruct state perfectly.

AI Recommendation Engine

A Python/FastAPI service using scikit-learn TF-IDF vectorization that syncs continuously with the catalog via Kafka.

Technology Stack

NestJS Kafka Python FastAPI OpenSearch PostgreSQL Redis