This is a very interesting idea. I have never done this before, but apparently there is a thing called messaging service https://create.roblox.com/docs/reference/engine/classes/MessagingService that seems to do what you want.
You would want to store a master version of the canvas somewhere that every server can access it, probably in a datastore.
The main issue I see is what happens if two people change the same pixel on different servers. It should work fine with one person being overwritten, though I have not tried.
I also found this post also talking about saving data between servers.
Happy coding!