Is performing chess validations that heavy, if you're serving ~10,000 games? (just asking for a friend)
To do all validations and move suggesions on the server side causes data traffic for no reason. Not just cpu time. It is senseless.
As a clarification, of course you will validate all moves on the server side and make sure client side state is consistent, but what I meant by validation is when you have to give every feedback from the server back to the client you will quickly find yourself in a ddos situation with so many players online.
However, you also need the same code running on the frontend in order to do validations before sending moves to the backend. That optimization helps distribute some server load and gets you immediate feedback. In Java's case, I'd use some java to js or java to kotlin to js transpilation.