Expiring the cached output when it reaches a certain age, or when unused for a certain period, always involves a trade-off... To have ultimate control over your cached data you may provide an ICacheSignal that will fire an event when the data changes.