Load balancing
To improve load balancing, the following actions are recommended:
-
In a production environment, you should run Neptune DXP - Open Edition behind a proxy, for example,
nginx
orHAProxy
, as binding to the default HTTPS port requires root permissions. That way, you do not have to run Neptune DXP - Open Edition with a privileged account. -
Switch the default SQLite database to a specialised external database, for example, PostgreSQL. This database should not be accessible to the general internet but only to your Neptune DXP - Open Edition instance.
Scaling within one server
To take advantage of the many processing cores that computers have, Neptune DXP - Open Edition has a master/worker architecture where you can spawn many Neptune DXP - Open Edition "workers". They all share the same TCP port and are stateless, so you can scale them up and down. If a "worker" process aborts, it responds immediately.
Scaling across servers
In a high volume environment, you may need more than one server. From the point of view of Neptune DXP - Open Edition, this is possible because the nodes themselves do not need to be synchronized with each other.
Neptune DXP - Open Edition runs in Docker and can be set up by an appropriate tool, for example, Kubernetes.
In this case, pods can be set up to run Neptune DXP - Open Edition.
Pods can be scaled up and down, depending on the load.
For security reasons, we recommend that you run the pods on an internal network and only communicate with the load balancer.
To make sure that the node is running, you can add a check to the /healthz
endpoint.