Really nice article and domain specific application of compression.
Interestingly I had no idea that lichess used MongoDB. I run (well, I built and let it run without maintenance) a chess related game site. I used RethinkDB since it seemed like a perfectly logical use of a document db to keep PGNs. I sorely regret that decision, and have a half-done Postgresql implementation in the works. The performance of the nosql db is abysmal when you want to do anything more than create and read a single document (for example, listing and aggregation performance are terrible even with indexing).
My tiny little toy site will never get to the amazing scale of lichess, and props to them to keeping things fast. I am very happy to see this writeup and technical detail.