yorkie icon indicating copy to clipboard operation
yorkie copied to clipboard

Move from server configuration to project-level settrings

Open hackerwins opened this issue 6 months ago • 0 comments

Description:

Previously, Yorkie started as a simple server for real-time collaborative applications. As the service model transitions towards PaaS, adding the concepts of Project and User becomes essential. Given that user applications may vary in workload and usage patterns, it would be beneficial to have some server configuration set on a per-project basis.

I propose to move the following server configuration should be moved to project-level settings:

  • --auth-webhook-cache-auth-ttl duration: TTL value for caching authorized webhook responses (default 10s)
  • --auth-webhook-cache-size int: Cache size for authorization webhook (default 5000)
  • --auth-webhook-cache-unauth-ttl duration: TTL value for caching unauthorized webhook responses (default 10s)
  • --auth-webhook-max-retries uint: Maximum number of retries for an authorization webhook (default 10)
  • --auth-webhook-max-wait-interval duration: Maximum wait interval for authorization webhook (default 3s)
  • --backend-snapshot-disable-gc: Option to disable garbage collection of snapshots
  • --backend-snapshot-interval int: Interval for creating snapshots (default 1000)
  • --backend-snapshot-threshold int: Threshold to determine if changes should be sent with snapshot when number of changes exceeds this value (default 500)
  • --backend-snapshot-with-purging-changes: Whether to delete previous changes upon snapshot creation
  • --client-deactivate-threshold string: Deactivate threshold for clients in specific project (default "24h")
  • --housekeeping-candidates-limit-per-project int: Candidates limit per project for a housekeeping run (default 500)
  • --housekeeping-interval duration: Interval between housekeeping runs (default 30s)
  • --housekeeping-project-fetch-size int: Project fetch size for a single housekeeping run (default 100)

Related to https://github.com/yorkie-team/dashboard/issues/145

Why:

Introducing these project-level settings will enhance the flexibility and efficiency of the Yorkie server, allowing it to better cater to various user requirements and improve overall performance as the architecture evolves.

hackerwins avatar Aug 20 '24 08:08 hackerwins