The Seam Framework provides a comprehensive set of components that allow us, as developers, to build comprehensive web applications.
In addition to invoking methods on components and classes, Seam provides an event-based framework that allows us to both raise and observe events. Events can be raised both synchronously and asynchronously, the latter being particularly useful if we want to implement background functionality without impacting user interface response times.
One common use for events is to provide auditing facilities. Whenever an action is performed within an application, for example, logging on or creating a customer, an event can be raised. When the event is observed, a log entry could be created in a database showing the action performed, who performed it, and when.