1. A method of isolating a shared memory-based state from concurrent clients of an application, the method comprising: partitioning a memory-based state into at least one domain of separate address spaces of a memory including variables within boundaries of the domain, wherein the variables are isolated from outside of the boundaries of the domain; introducing at least one agent inside the boundaries of the domain corresponding with a client of the application, wherein the agent acts on behalf of the client to access the variables within the domain; and enforcing isolation of the variables within the domain from the clients through communications between the agent and the corresponding client via message passing with a compiler and supporting runtime.