Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for multi-tenancy for lease coordination and management in KCL #1368

Open
sb2k16 opened this issue Jul 15, 2024 · 0 comments
Open

Comments

@sb2k16
Copy link

sb2k16 commented Jul 15, 2024

Problem Description

Currently, whenever a new KCL application is launched, it automatically creates a DynamoDB table for lease coordination and management for the specific application.

It would be nice to have KCL provide MultiTenant support such that multiple independent KCL applications (hosted in a single account) each consuming multiple Kinesis data streams be able to share a single DynamoDB table for lease coordination and management.

Proposed Solution
The proposal is to have KCL support multi-tenancy for lease coordination and management through a single DynamoDB table with the relevant partition keys, range keys and indexes defined as required. Moreover, clients should also be offered to provide additional properties like SSE, TTL, etc.

Following Table schema could be used to support multi-tenancy.
Table partition details:

  • Partition Key -
    • applicationName - Uniquely identifies the application.
  • Sort Key
    • LeaseKey - To allow for get/updates of the specific lease.

Additionally, introduce a Global Secondary Index (GSI) to allow for listing all shards per stream per application.

  • Partition Key -
    • applicationName - Uniquely identifies the pipeline
  • Sort Key
    • streamName - Uniquely identifies a stream.

New classes and overrides

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants