If anyone's into Javascript frameworks, I just put this article up on Vue.js . I see a lot of similarity between this and what we discuss here regarding the EventBus. Components don't directly interact. I'm going to be working with a customer plain JavaFX today or tomorrow that is having maintenance problems because of excessive inter-View coupling. (A layer of Threads causes multiple race conditions that only show up in slow environments.) I'm pulling in something EventBus-like; unfortunately not Kotlin.
https://courses.bekwam.net/public_tutorials/bkcourse_vuejs_master_details.html