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 in a physical tier of a distributed environment having logic to manipulate state, and wherein the application schema includes a serialized and programmable module definition corresponding with each module, wherein each module definition includes declaratively defined associated metadata to describe the aspects of the module; and providing runtime support of selectively partitioning the stateful components into scalable partitions, each partition includes a state of the partition of the stateful component co-located with logic to manipulate state without externalizing state from state logic, in response to adjustably programming the associated metadata to declaratively define an amount of module instances, an amount of partitions assigned to each module instance, and an amount of replicas for each partition to be created at runtime.