Reactive MVC based on event streams