A distributed computation system has a set of agents that perform each specified distributed computation. State transition events in each agent are conditioned or dependent on state transition events in other ones of the agents participating in the same distributed computation. The event dependencies between events in the agents are dynamically specified at run time from a set of predefined dependency types. The assigned conditions for resolving the truth value of these events are stored in local knowledge databases in each of the agents. Each agent stores in its local knowledge database a representation of the conditions for local events, which are state transition events in that agent, and a representation of the conditions for those external events that depend on notifications of local events in this agent and for those external events on which the local events are dependent. The local knowledge database also stores status information on the current truth value of the local and external events. Event notifications are sent by each agent when the truth value of a local event is changed. Whenever the truth value of a local event changes the agent inspects the local knowledge database to identify external events that depend on the local event. Notifications of events that are known, based on knowledge available to the agent, to be insufficient to resolve an external event's truth value are delayed or withheld until all the local events required to resolve the external event's truth value have been assigned final truth values.