status management in software architecture

hello,

i have a simple client-server game.
i am currently having problems to manage the status in which the client is, since already with this small game there are so many situations and so many dependencies.

example:
the player is in a certain zone and uses a portal to switch to another zone. then of course some loading process starts where new terrain data and models have to be loaded, as well as certain information has to be gotten from the server.

since the server does not know in which state the client is, he also sends gameplay information of the new zone during the loading process.

so my question is, how do i manage all these dependencies in good software development?

also, should the server wait for the client state before he sends information or should the client buffer information and apply it whenever he is ready.

thanks!

Im not entirely underdtanding your question.

From what I AM understanding the usual process ona zone switch in an MMO is as follows:
(0) Remove player from old zone and send that to all the players in that zone.
(1) Send new data on new area from server
(2) Base on that data load any new local datnecessary (can happen somewhat in parallel)
(3) When client is ready client sends an “im ready” packey to the server.
(4) Server places player in world in new zone and sends that to all players in the zone
(5)When player gets packet saying he is in the zone he assumes everyoen else has also been informed and can start playing in that zone.

There are ofcourse a million variations depending on how exactly play is organized in your game/

Hope that helps.