┌─────────────────────────────────────────────────────────────────┐
│ Flux Architecture │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Producer │ │ Producer │ │ Producer │ │
│ │ (P1) │ │ (P2) │ │ (P3) │ │
│ └─────┬───────┘ └─────┬───────┘ └─────┬───────┘ │
│ │ │ │ │
│ └──────────────────┼──────────────────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ Ring Buffer │ ← Lock-free, zero-copy │
│ │ (1M slots) │ cache-line aligned │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ │ │ │
│ ┌─────▼──────┐ ┌─────▼──────┐ ┌─────▼──────┐ │
│ │ Consumer │ │ Consumer │ │ Consumer │ │
│ │ (C1) │ │ (C2) │ │ (C3) │ │
│ └────────────┘ └────────────┘ └────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Performance Optimizations │ │
│ │ • SIMD (NEON/AVX2) data copy │ │
│ │ • Hardware CRC32 (ARM/x86) │ │
│ │ • NUMA-aware allocation (Linux) │ │
│ │ • Huge pages + io_uring (Linux) │ │
│ │ • Cache-line padding + prefetching │ │
│ │ • Batch processing (8K-128K slots) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘(BTW documentation needs to be updated, I already put a note for this concern in the Readme ..)
ziyasal•6mo ago