Event/Observable support for plain ruby with options for grouping observers and wrapping notifications in blocks of code, such as transaction handling.