1. A method of authoring and executing stateful components for a distributed application, the method comprising: declaratively defining an application schema for the distributed application including a plurality of distributed modules, wherein each module hosts a set of stateful components co-located in a physical tier of a distributed environment having logic to manipulate state; providing runtime support of partitioning the stateful components into partitions; and banishing control flow opaqueness of component logic in each of the stateful components.