Hi,

You're right — the asynchronous producer-consumer model isn't sufficient on
its own for all use cases. I’ll be adding a synchronous write path next to
ensure durability for critical operations.

The async path came first because I noticed that the vast majority (90%+)
of generated events were utime updates. These seem well-suited to periodic
async flushing (every few hundred milliseconds), since they’re
high-frequency but relatively low-value — if a few timestamps are delayed
or lost due to a crash, it's not a disaster.

Just to clarify: this is currently meant to be a metadata-only journaling
layer.

Regarding format compatibility: the current binary format is experimental
and Hurd-specific. I’m not aiming for ext4 compatibility at this stage —
the goal is to explore journaling semantics using these structures and
replay logic. If the system matures and proves useful, adapting it to the
JBD/JBD2 format or interoperating with the Linux journal infrastructure
would be a natural next step.

Thanks again — your feedback helps sharpen both the design and direction.

Best,
Milos

Reply via email to