The Period Lock Coordinates Close Work with Posting
Context
An unlocked state read can allow posting to pass a close that is protecting the month. Both paths need a shared serialization boundary.
Decision
Take the period lock before evaluating whether that month accepts the operation. Exclusive changes wait for shared postings, and later postings observe the resulting state.
Alternatives Considered
Use only optimistic period versions. A version check on the period does not alone order a separate posting transaction against a state change.
Read an application close flag before posting. A pretransaction flag check leaves a window for closure to commit before posting.
Consequences
A long revalidation can hold later postings until its transaction ends. Different period rows have separate locks, but year triggers and shared monthly aging can still cause contention. The shared protection affects Batch management, Reconciliation and credit reversal, so changes need those owners.