How should I sync entities in a multiplayer game? Hoping to be able to handle in a MMO scale

I know this is a very, very broad topic, because there are really tons of things that I don’t have concrete knowledge about. After looking around, I learned about how Quake did things, but I still have a really big question that I couldn’t find an answer to.

How do I sync the entities on the client? I’ve seen, and presumed, that I need to send some state to the server, the server processes those states, and then what? How should the server send back those processed state back? Do I need to send it in “bulk”, like a single payload has all the entities’ states, or I should make each entities handle their own syncing?

Based on the Quake network article, the best way to construct the payload is by just using byte array(I thought of using JSON before), which makes sense because it makes the payload smaller. But now how do I track which state is which? How do the client know what client id/number they have(for syncing)? I have a bit of experience with creating backends and REST APIs, and I know that every record should have an ID that is used for various things. And I know you’ll want to use UUID rather than autoincrement for those IDs to make a bit difficult to figure out a record’s ID. And I usually use at least 12 character long UUID for my record ID. Do I include that on an entity’s state payload?

I think that’s all the questions I have for now. Thanks in advance.