The blog post is old, but not a whole lot has changed (and likely won’t). You can have multiple frameworks in the same app. They cannot communicate with each other. They might share the same dependencies, but those dependencies are distinct at a binary level. So if you had a “Products” framework and a “Taxes” framework, you couldn’t pass a product class instance from “Products” to “Taxes”, even if the “Taxes” kotlin module depends on the “Products” kotlin module.