Description
Implement Delegated Storage according to the accepted proposal.
NEW
Total SP:
- Minimal scope: 46 SP + padding 15% = 53 SP (~ 7 weeks)
- Target architecture: 74 SP + padding 15% = 85 SP
Additional subtasks (not required for minimal scope)
AC
- in each sub-task check for
TODO(https://github.com/capactio/capact/issues/604) and if applicable, resolve it.
Reason
We want to be able to consume and save data into external backends. In that way we can integrate easily with 3rd party applications/services/platforms. We will solve also the security issues as one of the delegated storage can be e.g., Vault. Another benefit is to get rid of Neo4j and make Capact lightweight.
Why it's worth to replace the Neo4j:
- It’s a resource intensive
- Better local dev/test experience with lightweight alternative (not in Java)
- Option to create interactive tutorials, e.g. using katacoda: https://www.katacoda.com/. In that way, you can try our solution e2e without installing anything on your local machine. Currently, neo4j takes too much CPU and memory.
- GPL3 license will scare people away
- Not fully optimized for our use case (we got it working but it’s not ideal)
SCOPE: Only the Local Hub. Probably in the next phases this can be integrated/reused to other parts of our system, e.g., Public Hub.
Description
Implement Delegated Storage according to the accepted proposal.
- Make sure Populator supports it
- Support it in GraphQL API
- Find Types based on prefix of parent nodes (consider refactoring Cypher query to TypeScript)
Rewrite Local Hub to Go #605 [13MD]droppedbackend.id(Policy, Workflow, GraphQL) #624capact-outputTypeInstancessyntaxNEW
Total SP:
- Minimal scope: 46 SP + padding 15% = 53 SP (~ 7 weeks)
- Target architecture: 74 SP + padding 15% = 85 SP
Additional subtasks (not required for minimal scope)
taking into account the Potential feature evolution which may impact implementation
AC
TODO(https://github.com/capactio/capact/issues/604)and if applicable, resolve it.Reason
We want to be able to consume and save data into external backends. In that way we can integrate easily with 3rd party applications/services/platforms. We will solve also the security issues as one of the delegated storage can be e.g., Vault. Another benefit is to get rid of Neo4j and make Capact lightweight.
Why it's worth to replace the Neo4j:
SCOPE: Only the Local Hub. Probably in the next phases this can be integrated/reused to other parts of our system, e.g., Public Hub.