How to : Morango Deployed Successfully?

Please move if raised in incorrect topic.

Has anyone managed to get Morango working successfully.

I have the following Setup, Kolibri App 1 and Kolibri App 2, both broadcasting on port 8080, load balancer listening to port 8080 and distributing traffic to the servers accordingly.

SQL lite databases however need to be insync. SQL lite doesn’t like samba and therefor inherits permission errors rendering unstable when sharing a single file between two web servers. as a result I am losing the database sync aspect.

Morango / python pure sql seems to be the right way, however no real documentation on offer. has anyone had any joy with this?

Best Regards

Hi Jonathan!

Morango is designed for asynchronous eventual consistency (between occasionally connected devices), rather than realtime replication for multiple servers behind a load balancer. It batches sets of changes into chunks and syncs at intervals, which means that users might get inconsistent or erroneous behavior depending on how the load balancer does its routing. (Note that while Morango has been integrated into the latest versions of Kolibri, it is still in the testing phases and hence isn’t yet publicly documented.) You’d be better off setting up a database like Postgres and pointing both app servers at that. Note that we are now in the process of starting to test Kolibri’s Postgres performance to determine how it compares with use of SQLite, so while we expect it to boost performance overall, we don’t yet have hard numbers on that.

In terms of performance, database access is currently likely to be the main bottleneck (rather than server-side CPU/memory), so you may not get many gains from using two app servers with a load balancer. A frontend proxy (like nginx) to serve static assets and media will definitely help, however.