Existing methods for demand response either assume direct control of appliances by supplier, or assume that consumers adapt their load by reacting to pricing signals. The former are intrusive and might not scale well; the latter expose consumers to price volatility and require detailed awareness of time varying prices. We propose an alternative approach, based on ``service curves", which uses the following two ingredients. (1) The rate at which a consumer may draw power from the grid may be controlled by real time signals. Typical concerned devices would be heating systems, air conditioners and e-car batteries. (2) However, consumers are guaranteed that, over any window of time t, the amount of energy that may be drawn is at least equal to b(t), where the function b() (called the service curve) is agreed upon by contract at subscription time. The contract also specifies the maximum power that may be drawn, as well as a fixed price per unit of energy. Hence users are protected from price variability, at the expense of possible, but upper bounded, delays. With a proper service curve definition, an operator may distribute small service reductions in order to alleviate the impact of massive incoming demand onto the power grid. Consumers are able to observe the past service control signals that they received and can compute optimal load schedules from this and their service curve contracts, using only local information. Thus, this provides a distributed, scalable and robust demand response mechanism.