Replies: 1 comment
Open Design Question: I/O Boundary — What should wirelog handle natively vs delegate to users?This idea raises a fundamental architectural question about wirelog's I/O boundary. The spectrumOption A: Pure inference engine (current)
Option B: Built-in packet/network I/O
Option C: User-defined I/O adapters (plugin model)
Current thinking: Option C (plugin model)
Specific concerns for eBPF integration1. Batch ingestion eBPF ring buffers produce events in bursts. Current wl_batch_t *batch = wl_batch_create(session);
wl_batch_insert(batch, "packet", row1, ncols);
wl_batch_insert(batch, "syscall", row2, ncols);
wl_batch_commit(batch); // single step() call2. Streaming vs snapshot Current API is snapshot-based ( wl_session_set_streaming(session, interval_ms, callback);
// internally: accumulate inserts, auto-step every interval_ms, invoke callback with new results3. Fact retraction for time windows eBPF events are temporal. Old events should expire. wirelog supports 4. Back-pressure If wirelog evaluation is slower than eBPF event production, the adapter must handle ring buffer overflow. Should wirelog provide a back-pressure signal to the adapter? 5. Schema mapping eBPF events have varying schemas (different tracepoints produce different fields). How does the adapter map raw eBPF struct fields to wirelog relation columns? Static mapping at registration time, or dynamic via a schema callback? Questions for discussion
|
Uh oh!
There was an error while loading. Please reload this page.
Idea
Use wirelog as a userspace Datalog inference engine paired with eBPF for kernel event collection. The combination enables declarative, real-time analysis of kernel events (packets, syscalls, tracepoints) using Datalog rules — without kernel modification.
Architecture
wl_session_insert, runs incremental evaluationWhy wirelog fits
Use cases
1. Network policy engine
eBPF XDP captures packets -> wirelog evaluates policy -> result fed back via eBPF map.
2. Intrusion detection
eBPF tracepoint on sys_enter -> wirelog correlates multi-syscall patterns.
3. Data provenance tracking
Transitive data flow across processes via file operations.
Comparison
Open questions
Potential idea for future exploration, not a committed roadmap item.
All reactions