Testing showed every 50 messages too aggressive (43.6% duplicates).
Every 10 messages creates too much overhead.
Every 20 messages provides good middle ground:
- ~600 commits per 12k messages (manageable overhead)
- ~20 message loss window if consumer crashes
- Balanced duplicate/missing ratio