Skip to content

feat: Add support for Scylladb #16

@emirror-de

Description

@emirror-de

I know about Scylladb and I can help you if you plan to add it. I do not know about this package internal mechanism to add new database.

All data types - https://rust-driver.docs.scylladb.com/stable/data-types/data-types.html
Best practices - https://rust-driver.docs.scylladb.com/stable/statements/statements.html
All Support CQL Keywords - https://docs.scylladb.com/manual/stable/cql/appendices.html

Same like SQL but CQL can not joint. Only can use primary keys (cluster key and partition key) for WHERE in Select query. Insert and Update need all primary keys. That is it.

Originally posted by @indramal in #12

Things to be done to support additional storage backend:

  • Take inspiration of currently existing implementations within src/repositories folder
  • Create a new struct within src/repositories/scylladb.rs, if helper models are required store them in src/repositories/scylladb folder
  • Implement axum_gate::accounts::AccountRepository, axum-gate::secrets::SecretRepository and axum_gate::permissions::PermissionMappingRepository for Scylladb within separate modules (like already done for other implementations)
  • Gate the new module behind a feature flag storage-scylladb
  • Write tests for the new repositories
  • Add the new feature to the list within README and lib.rs documentation
  • Add CI tasks for GitHub and GitLab for the new feature flag

Things that may be helpful:

  • There are already existing crates that model communication with Scylladb, for example: scylla. If using, take a look whether it is actively maintained and supports all required features for our needs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions