Skip to content

v1.8.4 — Bounded Async Packet Processing

Choose a tag to compare

@togunchan togunchan released this 12 Apr 15:14
· 136 commits to main since this release

Overview

This release introduces bounded asynchronous packet processing and explicit pressure visibility.

The packet pipeline is no longer synchronous. Ingress and processing are now decoupled through a bounded queue, making backlog, saturation, and overload observable.

Key Changes

  • PacketProcessor is now asynchronous (worker thread + queue)
  • Bounded admission (MAX_QUEUE_SIZE = 1024)
  • Explicit overload signal: QueueOverflow
  • New observability metrics:
    • ingress_packets
    • processed_packets
    • processing_gap
    • drops (by reason)

Why it matters

The system can now:

  • accumulate backlog
  • expose pressure
  • signal overload explicitly

Previously, overload was hidden as callback latency.

Design Notes

  • See: docs/v1.8.4-bounded-async-packet-processing.md
  • Related: docs/v1.8.2-packet-telemetry.md

Status

This is a foundational architectural change enabling future:

  • backpressure policies
  • scheduling strategies
  • switching logic (v1.9)