2. Rigid?
• Resistent to Change
• Difficult to Reason About
• Internal and Structural Rigidness
3. Rigid - Problems
• Rigid components are hard to:
• Move
• Remove
• Repurpose
• Extend
• Compose
• Hard in execution and/or to come up with solutions
4. Causes for Rigidity
• Internal
• Complexity in code
• Naming Conventions / Coding Standards
• Focus on these last
14. How to restructure
• Extract a public API
• Move the component behind a generic interface
(REST)
• Event or message based
• Isolate the internal state (don’t share databases)
16. Drawbacks
• More moving parts
• Consistency only enforced within boundaries
• More difficult to see the whole picture
• Infrastructure is more difficult to set up and
maintain
17. Conclusion
• Tightly coupled applications are not always bad
• Don’t start with a complex architecture
• Frameworks that work well on smaller scale can
break when you’re dealing with larger problem
domains
• Worry about the API, hide the implementation
details