Back to Work

CLAPOS

Event-driven microservices platform for film production with 10+ independent services and real-time workflow synchronization via Kafka.

Role

Architect & Lead

Timeline

Nov 2025 - Present

Status

beta

Year

2025

ClapOS
The Problem

IDENTIFYING THE
BOTTLENECK.

Context & Pain

Film production involves vendor booking, talent scheduling, location coordination, and equipment allocation—each typically managed in separate tools.

"Departments work in silos. Vendor updates don't sync to scheduling. No unified workflow. Information scattered across spreadsheets and email."

The Challenge

How to build a single system where 10+ independent workflows stay synchronized without tight coupling?

The Insight

"The core problem isn't features—it's orchestration. Services must operate independently while reacting instantly to changes."

The Solution

ENGINEERING FOR
SCALE & SPEED.

System Architecture

Frontend (Vercel) → API Gateway → 10+ Microservices → Kafka Event Bus → MongoDB (per-service instances)

Event-driven microservices with Kafka as the central nervous system—services emit events, others listen and react.

Microservices over Monolith

Why split into independent services instead of one codebase?

Why:Each film workflow (vendors, talent, locations, crew) has independent scaling needs. Monolith becomes a bottleneck when one service gets hammered.

Kafka Event Streaming

Why event-driven instead of REST calls?

Why:Services don't call each other directly. Kafka provides durability (events persist), replay (recover from failures), and natural decoupling.

MongoDB per Service

Why isolated databases instead of a shared one?

Why:Data isolation allows each service to scale independently and own its schema. Prevents cascading failures.

Tech Stack

Backend
Node.jsExpress.js
Database
MongoDB
Frontend
Next.jsTypeScriptTailwind CSSRedux ToolkitRTK Query

Key Benefits

  • Highly scalable architecture
  • Real-time data processing
  • Automated anomaly detection
  • Optimized query performance
The Results

MEASURABLE
IMPACT.

Services Built

Before

0

After

10+ independent services

Complete product surface

Architecture Type

Before

Monolith planned

After

Event-driven (active)

Zero direct service coupling

Frontend Status

Before

Not started

After

Production-ready on Vercel

Live and functional

Adoption & Reliability

Launch

Frontend live

Users

In active development

Uptime

Backend infrastructure currently building

The Learning

"Event-driven architecture handles workflow complexity better than REST coupling. Infrastructure complexity is a real tax—observability matters from day 1."

The Challenges

OVERCOMING
COMPLEXITY.

01

Service Decoupling

Problem

Initial design had services calling each other directly—classic tight coupling.

Solution

Switched to pure event-driven: services emit events to Kafka, others listen. No direct dependencies.

Learning

True decoupling requires rethinking communication patterns entirely.

Solved
02

Eventual Consistency

Problem

With event-driven systems, data isn't immediately consistent everywhere. What if a service crashes mid-stream?

Solution

Kafka event log is the source of truth. Services replay events from the log on recovery. Nothing lost.

Learning

Distributed systems trade immediate consistency for resilience. That's the right trade.

Solved
Deep Dives

TECHNICAL
DETAILS.

Event-Driven Communication Pattern

How independent services stay synchronized without calling each other.

Why this matters"Decoupling = independent scaling, failure isolation, simpler testing."
Initial Approach
Vendor Service → (REST call) Audition API → (REST call) Schedule API → Tight coupling, cascading failures
Optimized Solution
Vendor emits "vendor.created" → Kafka topic → Audition service listens → Schedule service listens → All react independently
Outcome

FINAL REFLECTIONS.

"Architecture scales before infrastructure. Event-driven systems add complexity, but they handle distributed workflows elegantly."

Frontend live, backend infrastructure in progress

If I were building this again

Implement event sourcing from day 1 (full audit trail)

Plan Kubernetes deployment before coding

Set up observability stack immediately (logging, tracing, metrics)

Proof of Work

INTERESTED IN HOW I WORK?

Let's discuss your technical challenges and how we can approach them together to build high-performing systems.