Skip to content

Support for scheduled relationships #2538

@tenkoverse

Description

@tenkoverse

Problem Statement

SpiceDB currently supports expiring relationships ("give access from now until Y"), but not:

  1. "Give access from X (future time)" (scheduled)
  2. "Give access from X until Y" (scheduled and expiring)

This forces users to either:

  • Use caveats (with the complexity/performance issues that led to native expiration support) by hoisting time management complexity into the application.
  • Build external scheduling systems to write the relationships at a specific time

Similar design arguments that justified moving from the caveat-based expiration solution to native expiration times apply to this idea.

Solution Brainstorm

Extend the idea of optional expiring relationships to also support optional scheduled relationships:

  • Add OptionalScheduledAt field alongside OptionalExpiresAt
  • Relationships would be "invisible" until their scheduled time, then activate normally
  • They can be used in addition to OptionalExpiresAt to create active time ranges.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/proposalSomething fundamentally needs to change

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions