Close Controls Period Status on the Shared Calendar
Context
The same month supports calendar administration and posting protection. Ownership must distinguish those concerns without storing two conflicting period states.
Decision
Keep the close’s state, attribution, run backlink and correction count on the shared period row. Use the single transition writer for changes and leave calendar maintenance to Books.
Alternatives Considered
Store a second period-state record for close. Posting and year-status derivation would need another record and lock relationship to read the same month.
Ask Books to own close-state operations. That would place run-dependent closing behavior outside the module responsible for its execution and evidence.
Consequences
Ownership divides the shared row by concern: calendar fields belong to Books and closing fields to Close. Posting and late-effect paths read the period table directly rather than calling a close endpoint. Responsibilities must preserve this split when Books receives its own design.