1. An event driven component in a distributed system of software components, the distributed system of software components comprising: accepting means for accepting input events arriving at an input gateway; a coarse-grained component for providing a coarse-grained function via an input port, wherein the coarse-grained function provides a set of services; decision means, in the input port, for creating a buffered port that provides a queue for each of the services according to a configurable policy, wherein the buffered port is dedicated to be exclusively used by the event driven component; an event registry in which an event driven component registers its interest in accepting a subset of the events and its interest in generating output when executing the set of services, wherein each service in the set of services is associated with one or more events; distributing means for distributing the events, via the input gateway, to the input port; and an output gateway for dispatching a generated output event to an output port.