Hi OpenRemote community,
I’m building a smart agriculture IoT platform using OpenRemote deployed on a K3s Kubernetes cluster. My business model is hardware + SaaS, serving multiple tenants (individual farmers, cooperatives, and agricultural enterprises).
I’m trying to design the right architecture from the beginning to avoid painful migrations later, and I have some questions about horizontal scaling.
Current stack:
- K3s Kubernetes cluster
- OpenRemote Manager (single pod currently)
- Keycloak (bundled)
- PostgreSQL HA (CloudNativePG)
- Redis HA
- Longhorn distributed storage
- MinIO
Questions:
-
Multiple Manager pods — Is it possible to run multiple Manager pods serving the same tenant simultaneously? I understand Manager is stateful and keeps asset states in RAM. Is there any clustering or shared-state mechanism (e.g., via Redis or database) that would allow this?
-
Sticky sessions — If true horizontal scaling is not supported, would sticky sessions via Nginx Ingress be a recommended workaround? What are the limitations?
-
Multiple Manager instances (multi-tenant) — Is the recommended production approach to run one Manager instance per tenant? If so, are there official Helm charts or automation tools to provision new tenant instances automatically?
-
Keycloak scaling — What is the recommended way to run multiple Keycloak pods in cluster mode with OpenRemote? Does OpenRemote have any specific configuration requirements for Keycloak clustering?
-
Roadmap — Is horizontal scaling of a single Manager instance on the roadmap for future releases?
Any guidance, real-world experience, or architectural recommendations would be greatly appreciated. Thank you!