3 ms·
The issue is that you can't "enforce" loose coupling. The causality is reversed here. Your software artifacts will have loose coupling if you divided them well
by marcosdumay 2y ago
The issue is that you can't "enforce" loose coupling. The causality is reversed here.
Your software artifacts will have loose coupling if you divided them well enough on their creation. As soon as they are created, you can't do anything else to change it, except for joining or splitting them.
- eikenberry 2y agoIt's not about enforcement, it's about encouragement and path of least resistance. In monorepos the path of least resistance is tight coupling (unless discouraged in other ways). In 'microrepros' (?) there is added resistance to tight coupling as was presented in the article. This encourages people down the correct path but cannot enforce it (again, as was presented in the article).
- MajimasEyepatch 2y agoIt leads people down a different path, but that's not necessarily the correct path. For example, between the lack of discoverability of separate repos and the hurdle of modifying multiple separate repos, teams might be tempted to duplicate functionality and data instead of figuring out the appropriate relationships between services. Some amount of coupling is normal and reasonable. There are ways to manage it well.
- ted_dunning 2y agoCoupling happens due to other reasons than poor contracts. The discussions from Hyrum Wright from Google about large-scale refactoring are great in this respect. https://www.youtube.com/watch?v=TrC6ROeV4GI https://www.youtube.com/watch?v=TrC6ROeV4GI