8 reasons to have microservices

Splitting a codebase. Small, and Focused on Doing One Thing Well.

At 1st Chapter of Building Microservices by Sam Newman, the author described the motivation.

Codebases grow as we write code to add new features, Over time, it can be difficult to know where a change needs to be made because of the codebase is too large. Despite a drive for clear, modular monolithic codebases, all too often these arbitrary in-progress boundaries break down. Code related to similar functions starts to become spread all over making fixing bugs or implementations more difficult.

With a monolithic system, we fight against these forces by tying to ensure our code is more cohesive, often by creating abstractions or modules. Cohesion – the drive to have related code grouped together – is an important concept when we think about microservices. This is reinforced by Robert C. Martin’s definition of the Single Responsibility Principle, which states “Gather together those things that change for the same reason, and separate those things that change for different reasons.”

Read More →

Integration with 3rd party APIs

There are many articles and books about good API design. But more often we connect to external systems via API, not developing.

I divide programming interfaces into two big sets – public and not so public. The first category – APIs of big companies like Facebook, Twitter, Paypal, etc. Generally, this kind of API is stable, developer-friendly and well-designed. The second category is APIs of small or middle-sized companies, state services and internal applications in big companies. This article will focus on the second set.


Read More →