This paper describes the rationale and design of a new distributed systems programming model based on events, constraints, and objects 1 . The paper describes the inter-object communication or invocation mechanism, and the way in which concurrency, synchronisation, and timing properties are expressed a n d c ontrolled. The invocation mechanism is unusual in that it is event-based. I t e n c ourages loose coupling among the objects and a high degree o f e n c apsulation for each object. Concurrency, synchronisation, and timing properties are expressed in a uniform way using constraints which may be associated with objects and events.