Skip to content

Add ScyllaDB Adapter to MoleculerJS  #1298

Open
@azita-abdollahi

Description

@azita-abdollahi

Is your feature request related to a problem? Please describe.

I have developed a ScyllaDB adapter for MoleculerJS that allows users to integrate ScyllaDB as a data store in their services. Currently, there is no official adapter for ScyllaDB in the MoleculerJS, which limits options for developers looking to leverage ScyllaDB's high performance and scalability.

Describe the solution you'd like

I would like to propose the addition of my ScyllaDB adapter to the MoleculerJS. This adapter is designed to provide seamless integration with ScyllaDB, enabling developers to utilize its capabilities within their MoleculerJS services. I have followed the standard MoleculerJS contribution guidelines and have written unit tests to ensure the reliability of the adapter.

Describe alternatives you've considered

While there are other databases supported by MoleculerJS, such as MongoDB, there is currently no support for ScyllaDB. Developers looking for a high-performance NoSQL solution may find this adapter beneficial.

Additional context

I am currently using this adapter in my company's production environment, and it has proven to be effective and reliable. My GitHub repository for the ScyllaDB adapter is currently private to protect my code until it is reviewed. However, I am willing to grant access to the maintainers of MoleculerJS for review purposes. Please let me know if you would like me to invite you as collaborators to the repository.

Usage Example

Here’s a simple example of how to use the ScyllaDB adapter in a Moleculer service:

const { ServiceBroker } = require("moleculer");
const DbService = require("moleculer-db");
const ScyllaDbAdapter = require("moleculer-db-adapter-scylla");

const scyllaOptions = {
   contactPoints: ["127.0.0.1"],
   localDataCenter: "datacenter1",
   keyspace: "test",
   authProvider: { username: "cassandra", password: "cassandra" },
   ormOptions: {
       defaultReplicationStrategy: {
           class: 'SimpleStrategy',
           replication_factor: 1
       },
       migration: 'safe'
   }
};

const adapter = new ScyllaDbAdapter(scyllaOptions);
const broker = new ServiceBroker();

broker.createService({
    name: "users",
   mixins: [DbService],
    adapter: adapter,
    actions: {
        // service actions
    }
});

broker.start();

Thank you for considering my contribution to the MoleculerJS ecosystem. I look forward to your feedback!

Best regards,

Azita Abdollahi

https://github.com/azita-abdollahi

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions