Event-Driven Microservices Migration
Provider Matching Platform
Architected a real-time provider search and ranking system for a 20K+ contractor marketplace. Migrated from monolith to event-driven microservices using Node.JS, TypeScript, Kafka, and OpenSearch — reducing search latency by 70%.
System Design
Architecture Breakdown
User Plane
React / Next.js UI
Standalone provider search interface with card display, filters, and ranking controls.
Backend API
REST API for provider queries, filtering, and ranked result retrieval. Sub-second P95 response time.
Ranking Engine
Configurable scoring service with weighted formulas and real-time algorithm tuning.
queries
rank / filter
config
Data Stores
OpenSearch
Primary search index. 40+ provider attributes indexed for fast filtered ranking queries.
PostgreSQL
Relational store for match criteria, ranking rules, and configuration data.
Redis
Operational caching layer for app-side performance.
index updates
sync
events out
Event Pipeline
Kafka Source
Reads provider and work order data from S3 and publishes to Kafka. Handles historical seed and real-time stream.
Kafka
Central event bus carrying provider, work order, assignment, and engagement streams.
Kafka Sink
Consumes topics and writes to OpenSearch. Per-topic monitoring, DLQ flush, and metrics emission.
batch · daily
real-time
batch · daily
Data Sources
Data Platform / S3
dbt-transformed provider attributes. Aggregate metrics, skills, ratings, and compliance data.
Real-Time Events
Live work order updates, assignment changes, and counter-offers triggering immediate sync.
User Engagement
Click, scroll, and view events from the UI used for ranking signal development.
Infrastructure & Observability
Platform
Taylor Dugger — Provider Match Architecture
User Plane
Data Stores
Event Pipeline
Data Sources