web applications – Can git be made scalable as a content management system backend?

I’m currently in the planning stage of a new project which is a content management system.

The basic requirements are somewhat straight forward:

  1. Rich text capability ✅
  2. Real-time collaboration ✅
  3. Subject-based search and indexing ✅
  4. Scalable (possible multi-server deployment in future)
  5. Online/offline sync
  6. Roll-back capability

The last few is where I’m a bit hung up on the plan. The way the requirement is, git or something extremely similar would be the ideal. Lossless, lightweight, and storage space efficient.

So I started doing some research looking to see whether anything “git-like” was available as a back-end plugin. I was looking specifically at mongoDB capabilities at first and pretty much found that building my own methodology from scratch was what I’d have to do to get everything I want.

Then I found this article from 2016 describing a way to create a no-SQL database with git itself. https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/

Thinking this through it seems very doable and interesting, and I’d get to use git directly which comes with familiarity on my part, a huge amount of documentation and utilities, and a buttload of features. That being said, I am wondering about the scalability of this method.

If I went with this route, then I was asked to deploy to a multi-server cluster with active-active capabilities would there be any way to do that? I could simply setup a master repository and sync all nodes with git pull before accessing the on-demand content rollback features; or setup a hook based sync between server nodes (something like what’s outlined here https://blog.tinned-software.net/git-repository-cluster-setup/).

However, I’m not sure if I’m trying to make something work in a way that it really shouldn’t be and I should just sigh, make peace with my lot, and start building the roll-back system from scratch.

Any advice or thoughts would be appreciated.