Support for other databases for data store
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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