StackStorm / StackStorm/st2

Support for other databases for data store

Open
#3,778 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

complexity:hard feature proposal
Dominant language
Python
Stars
6.5k
Forks
787
PR merge metrics
No merged PRs in 30d

Description

We could have a situation in the future in which we must host our stackstorm instance(s) on boxes that are required to adhere to specific set of DB engines (i.e. cassandra and not mongodb).

This issue is to discuss the viability of creating an adapter layer that the api use to talk to any database engine (essentially api stays the same, but byodb). (other solutions welcome, too, of course :) )

Here's the initial community discussion: https://stackstorm-community.slack.com/archives/C066APT88/p1507045798000498

Brief transcript of response from @bigmstone:

There’s been some talk of moving away from mongo, but nothing set in stone yet.
There’s some methods that are tightly coupled to the datastore, and that will likely continue for performance reasons. So supporting multiple data stores will likely not be worth maintaining because of the complexity it would add.
No issue out for it at the moment. Something we’ve discussed internally. Few steps before that path would be open for us though. For instance, currently we transport python objects across the bus via pickle. That needs to change to JSON and would take priority over new db.
However, having the workflow engine and st2 core use the same datastore has appeal from requirements perspective.
(For example, both mistral and ST2 using postgres would be nicer than the current situation)

Also, we could have a similar situation (and resolution) for RabbitMQ.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked community discussion and the issue's notes about datastore coupling, pickle-to-JSON transport, the workflow engine, st2 core, and RabbitMQ. The payload names no files, tests, entry points, or acceptance criteria; done would first require an agreed scope and viability decision for supporting alternate databases or messaging.

Written by the indexing model from the issue text.

Assessment

Tech stack
cassandra, mongodb, python, rabbitmq
Domain
backend-api-design, databases, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.