package eventDemo.libs.event /** * Interface representing an event stream for publishing and reading domain events */ interface EventStream> { /** Publishes a single event to the event stream */ fun publish(event: E) /** Publishes multiple events to the event stream */ fun publish(vararg events: E) /** Reads all events */ fun readAll(): Set fun readGreaterOfVersion(version: Int): Set fun readVersionBetween(version: IntRange): Set }