{"id":"wal-max-file-size-is-soft","text":"`max_file_size` is a soft limit; a single batch can push a WAL file arbitrarily past it because `_maybe_rotate` runs only after the write and sync complete","truth_value":"IN","source":"entries/2026/05/29/topic-batch-atomicity-across-rotation.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{"example":"def _maybe_rotate(self):\n    if self._fd and self._fd.tell() >= self._max_file_size:\n        self._rotate()\n# checked AFTER write, so file can exceed limit"},"explanation":{"steps":[{"node":"wal-max-file-size-is-soft","truth_value":"IN","reason":"premise"}]}}