DON’T BUILD FRAMEWORK, BUILD PLATFORM - Empower high flexibility and scalability in the enterprise with good design principles - 2018/05/11 M3 Tech Talk #92 @yoskhdia
Flexibility brings us many choices but often means making chaos “High flexibility” has a trade-off. We DON’T want each team to implement their non-functional requirements. We want to focus on the business domain. 4
Don’t hide open knowledge Many people often choose to build their own framework for covering their requirements. However, it forces developers to learn the framework’s SPECIAL SHINY AWESOME PRIVATE API. This is a risk. 5 Any Good Toolkit (Akka, Spring, etc...) Your own Framework
One approach 6 Any Good Toolkit (Akka, Spring, etc...) Your own Framework Any Good Toolkit (Akka, Spring, etc...) Your Infrastructure Thin Platform ▸ Don’t build framework ▸ Build platform
I want to introduce squbs squbs is: ▸ Developed by PayPal ▸ NOT framework ▸ Suite of components enabling standardization and operationalization of Akka Overview Introduction - squbs 7
Separation of Concerns “Allowing infrastructure to plug in infrastructure concerns without disturbing the application in any way.” ▸ Separate non-functional requirements from functional requirements. ▸ Make those “Concerns” pluggable components. 10
Loose Coupling 11 “Tangling of large systems comes from tight coupling of the type system.” ▸ Separate an application into (service) modules called “cube”. ▸ They communicate with each other only via messages, this brings isolation of the service.
DRY 12 “The drop-in design of squbs allows for at-most-once coupling.” ▸ Drop-in Modular System provides auto detection of each service modules. ▸ It is easy to add/remove them to/from the system.
Minimize Duplication of Effort 13 “Most of the low-level components of the application that deal with application lifecycle and monitoring are common across applications.” ▸ By dealing with lifecycle management will hide and abstract away such duplications, to be standardization & operationalization.
Thin Platform 14 “We realize the emergence of the thin platform and try to keep squbs as lightweight and non-imposing as possible.” ▸ Reduce dependencies and Do not impose further requirements. ▸ Developers can leverage general knowledge.
Conclusion 15 Any Good Toolkit (Akka, Spring, etc...) Your own Framework Any Good Toolkit (Akka, Spring, etc...) Your Infrastructure Thin Platform ▸ Don’t build framework ▸ Build platform
CREDITS Special thanks to all the people who made and released these awesome resources for free: ▸ Presentation template by SlidesCarnival ▸ Photographs by Unsplash 18