runwhen-contrib/runwhen-local

Removal of Neo4j

stewartshea opened this issue · 1 comments

The container image currently uses Neo4j as a state management tool; while this might make sense for longer term plans that include widening the indexer capability, for the purposes of indexing Kubernetes resources, it feels like it's overkill and has an operational effect of adding quite a bit of extra size to the container image (the base neo4j image is about 500Mb) and all of the packages and dependencies to manage that it comes with. It doesn't appear that it provides value as compared to it's additional overhead, so we will remove it for now and reconsider this at a later date when the design comes up to re-introduce indexers for GCP/AWS/Azure.

Update: below is the (probably mostly redundant) description from a duplicate ticket that I closed.

There are several neo4j-related issues that cause friction/bugs with the deployment of the workspace builder and runwhen local. At least for now, the use of neo4j doesn't really buy us anything since we completely reset the model state before every run of the workspace builder to maintain data isolation of the different runs. So for now it would simplify things to just store the model information in memory. It would presumably eliminate the networking-related issues some people see when deploying runwhen local and it would cut down the size of the docker image by a lot.

Eventually, if/when we have something like a product/resource graph feature, it will be desirable to maintain the model state in a database, so ideally I'll try to make this change by abstracting out the model storage layer so that it can be switched between storing in memory vs. in neo4j (or possibly some other database).

closed with 0.3.10