Ideas functional options Optional RingBuffer based channels context cancellation subcription filtering?