Term Lifecycle
What It Is
The term lifecycle is how Rhythm interprets membership periods over time. It determines a period’s dates from an offering rule and answers the holding’s standing on a requested date from its terms. It also groups effective periods into continuity episodes and supplies decisions for cached views and nightly boundary work. These are related interpretations of time rather than additional memberships to create.
The engine receives explicit inputs and returns decisions. It does not read an ambient clock or own the membership rows it interprets. Anniversary and calendar calculations retain substantial Rhythm 1.0 behavior, while selected differences include real February month endings and nonmutating inputs. The recorded extraction intent keeps the engine independent so another term-based domain can eventually use the same mechanism.
What It Is Not
The engine does not replace the stored terms belonging to a membership. It does not compute monetary amounts or decide that an order has been paid. Term state is also distinct from date-based standing: a committed period can finish without its state becoming a new expiry state. Cached status is a convenient stored interpretation, not a substitute for resolving the relevant date.
How It Is Used
Consumers request dates when preparing a period and status when interpreting a holding. They can ask about an earlier date using the same effective-period rules. Membership administration persists the decisions and runs the sweep on its own schedule. Staff configure action reasons and select them during status actions. Surprising outcomes often arise at fixed-window boundaries or where two consumers interpret an absent reinstatement allowance differently. Those cases need product decisions rather than a different wording of the same calculation.
Its Facets
Period calculation. The basis, length and threshold choices determine the dates.
Later purchases. Continuation begins after an existing end, while a restart uses a fresh basis.
Effective states. Earlier committed history remains relevant after supersession or termination.
Membership standing. Suspension and covering periods take precedence over later status possibilities.
Grace allowance. A classification override can replace the program allowance, including with zero.
Continuity. The latest episode begun by a requested date remains its continuity reference even after that episode ends.
Boundary work. Normal sweeps select relevant boundaries; missed work requires catch-up.
Action explanations. Reasons qualify particular status actions rather than replacing effective dates.
How It Relates
Packages supply date rules and renewal choices. Programs and types supply allowances and benefits information. The memberships module owns holding records, terms, caches, event persistence and scheduling. Commerce requests relevant decisions while retaining monetary responsibility. Configuration safeguards govern the reason catalogue used by staff actions.
What It Could Become
The product should settle first-purchase behavior immediately after a fixed window closes and reconcile empty reinstatement meanings across consumers. It should also decide what grace means for benefits, beyond the existing status label. A second adopting domain can trigger the recorded extraction, but that reuse should preserve explicit inputs and the separation between decisions and persistence.