Skip to content

RFC: Single Node Instance #1456

@LtChae

Description

@LtChae

Is your feature request related to a problem? Please describe.
While UrbanOS scales up well, it does down scale down. This is an issue for small scale deployments for local, civic, and non-profit instances.

Describe the solution you'd like
I would like to propose a way to run UrbanOS as a single image, with all the microservices running together in parallel. External dependencies could be replaced with in memory or disk versions, especially with elixir libraries. This small-scale installation would handle Curation to Ingestion to Discovery. I recommend keeping Postgres as a dependency, shared between all the apps that need it and playing host to the persisted data storage as well.

The end goal would be an architecture of UrbanOS <-> Postgres. This is far more maintainable both from cost and technical expertise, while the postgres database would allow the user to easily swap to the clustered version with a simple process if later scaling demanded it.

Describe alternatives you've considered
At the moment, UrbanOS can scale down by cutting out microservices. This reduces the capabilities of the platform however and is not preferable.

Additional context
Dependencies to be swapped out:
Kafka -> Something like https://github.com/fredwu/opq (The event stream could be done relatively easily by customizing Brook!)
Redis -> Cachex
Elasticsearch -> https://github.com/heywhy/ex_elasticlunr

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions