Open Source Oriented Architecture
I recently watched this talk by Vicent Marti (Spanish) about microservices and Github. I loved it. It is full of wisdom pills and common sense delivered in a fun and entertaining way.
One of the ideas that blew my mind was what he called OSOA (Open Source Oriented Architecture). That’s the name he uses for the unnamed Github practice of treating each part of your application as an open source library. It’s a very simple concept with many positive implications:
- Low coupling. A library any person can use will minimize its dependencies. With low coupling, chances of needing a microservice to address this problem decrease. And it is also easier to extract a microservice if you ever need to.
- Coding quality. In an open source library, you will want to keep its code in the best possible shape, so that other people can collaborate.
- Open source management. It implies a maintainer who takes care of the library, a README file, documentation, etc. Things that are critical for internal apps but we rarely do.
Of course, there is no need to release each library as an open source if it doesn’t make sense. It is all about the management approach and the mindset shift. Instead of having internal interconnected applications, each one managed by very few people, you have high-quality libraries other people can check and improve. Exactly like open source libraries.