{"id":"event-store-single-threaded-assumption","text":"`EventStore` assumes single-threaded access: `event_id = len(self._events) + 1` is a race condition under concurrency, and no locking protects `_events`, `_streams`, or subscriber notification.","truth_value":"IN","source":"entries/2026/05/29/event-sourcing-store-event_store-append_batch.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{},"explanation":{"steps":[{"node":"event-store-single-threaded-assumption","truth_value":"IN","reason":"premise"}]}}