[BACKEND]·2023 — 2024

RelayCore Engine

Distributed background task broker handling queue scheduling with consensus failover and zero message loss.

┌─project parameters────────────────────────
role:Backend & Distributed Systems Engineer
period:2023 — 2024
category:backend
stack:
#Go#Redis#PostgreSQL#Raft#Docker#gRPC
┌─system visual wireframe────────────────────────
// ARCHITECTURE TOPOLOGY[ACTIVE]
┌─────────────────┐       ┌──────────────────────┐
│ Ingress Traffic │ ───>  │ Raft Consensus Group │
└─────────────────┘       └──────────────────────┘
         │                           │
         ▼                           ▼
┌─────────────────┐       ┌──────────────────────┐
│ Memory Queue    │ <───> │ Dispatcher Worker #8 │
└─────────────────┘       └──────────────────────┘
BENCH: 100k msg/sFAILOVER: <100ms

// schematic wireframe rendered in code. works independently of confidential client screenshots (FR-006, FR-007).

Problem

Mission-critical asynchronous payment processing and telemetry webhook dispatches require at-least-once delivery guarantees even in the face of sudden node restarts, network partitions, and noisy neighbor spikes.

Role

Designed and implemented the core message broker, consensus coordinator, and backpressure scheduling pipeline.

Architecture & Stack

  • Raft Consensus Group: 5-node consensus protocol managing partition elections and dynamic leader assignment with sub-100ms failover.
  • Predictive Backpressure Scheduler: Rate-limits external third-party webhook sinks using adaptive sliding token buckets.
  • Write-Ahead Logging (WAL): Disk-backed durable WAL in Go paired with memory-mapped queues for microsecond dispatcher throughput.

Outcome & Metrics

  • Benchmarked at 100,000 messages/sec dispatch rate on modest 4-core worker nodes with p99 latency under 1ms.
  • 0 message loss during chaos injection tests simulating partition failures and killed leaders.
Keyboard shortcuts
/Open search / command palette
⌘KToggle command palette
gtGo to TIL stream
gbGo to Articles
ghGo to Home
↑↓Navigate results
↵Select result
escClose palette