Back

How to make redis Fast and scalable for Multiinstance Appwrite (Production grade)

  • 0
  • Self Hosted
  • Flutter
  • Databases
Faisal7
6 Apr, 2025, 17:17

Currently i built my Appwrite architecture as follow. I have multiple servers in multiple regions in germany lets say server 1 and server 2. Each server has its own Appwrite, ProxySql and redis locally. and Each Instance access its own local Stuff. For database i have master DB sitting in Server1 and all the other servers will have the replica of it and i am managing it through ProxySql. Each region has its own proxySql because later i can add more DB replicas to that region and scale it furthor. So DB is Zentrelized by that with multiple replicas. Here i dont have any problem it workes perfectly.

And also Storage i have cloud storage and connected all the instaces to it.

Here now comes the problem, that i have with Redis currently. If each Instance has its own Redis and access it it workes but all the sessions changing something in one console will not affect in another and so on. So i need this setup that everything should be kind of local so that i not lose any speed due to high latency. I had before Redis centrelized but each request was very slow, because of latency in between i tried with my new architecture its super fast but i have just that one problem with redis.

I Searched and find out that i could use Redis in each instance and set up a bidirectional sync with RedisShake but again it might have problems with key collision or key mismatching.

So what option do i have to make it local and also also instances be in sync with the same keys? Anybody

TL;DR
Ensure that each Appwrite instance has its own local Redis. Implement bidirectional sync with RedisShake to keep instances in sync with the same keys and prevent key collision or mismatching. This setup will maintain local performance while enabling synchronized changes across instances.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more