The Cambridge Event Architecture has added events to an object-oriented, distributed programming environment by using a language
independent interface definition language to specify and publish event classes. Here we present an extension to CEA using
the ODMG standard, which unifies the transmission and storage of events. We extend the existing model with an ODL parser,
an event stub generator, a metadata repository and an event library supporting both C++ and Java. The ODMG metadata interface
allows clients to interrogate the system at run time to determine the interface specifications for subsequent event registration.
This allows new objects to be added to a running system and independently developed components to interwork with minimum prior
agreement. Traditional name services and interface traders can be defined more generally using object database schemas. Type
hierarchies may be used in schemas. Matching at a higher level in the type hierarchy for different domains is possible even
though different specialisations are used in individual domains. Using metadata to describe events provides the basis for
establishing contracts between domains. These are used to construct the event translation layer between heterogeneous domains.