Skip to content

History / Serialization

Revisions

  • Document serialization, batch send, auto-prepare; migration guide to 0.11.0 Closes the four gaps in blehnen/DotNetWorkQueue#258. The wiki's last substantive update was 2026-07-06, so everything from 0.9.37 through 0.11.0 was undocumented. New Serialization page. There was none, and nothing anywhere named SerializerId or ISerializerResolver - so the opt-in System.Text.Json serializer, the Queue-SerializerId header, consumer-side selection and the fallback for messages written before the header existed had no home. Added to _Sidebar before Message Interception, since interception runs on the serialized bytes. Producer: the batch section said "this operation is not necessarily atomic". That stopped being true in 0.9.41 for the relational transports and in 0.11.0 for LiteDb, so the page was telling readers the opposite of the guarantee they now have. Replaced with what each transport actually does, plus caller input ordering, the scheduled-job rejection and BatchSize - all verified against the code rather than inferred from the changelog. PostgreSQL: Npgsql automatic statement preparation, which #232 measured and shipped as a documented tuning option in the transport README. The wiki is where people look for tuning options, and it appeared on no page. Carries the numbers and the DDL trade-off, including that the gain is on the batch path only. MigrationGuide stopped at 0.9.31. Added 0.9.41, 0.9.42, 0.10.0 and 0.11.0, driven off the changelog's warning-marked entries - batch atomicity, the held-transaction path throwing, SQLite pooling holding the file handle open, and the three in 0.11.0. MigrationGuide.md is LF while the rest of the wiki is CRLF; kept per file.

    @blehnen blehnen committed Sep 7, 2026