Microservice With Node.js

Álvaro José Agámez Licha

Software Developer at PSL

https://github.com/aagamezl​

@aagamezl

Maintenance: Services, when separate, become easier to develop, test, and deploy because they should be simpler and small.


Design enforcement: A proper and good design is enforced on the application being developed.


Knowledge encapsulation: Services will have specific objectives, such as delivering emails, which will lead to service re-usage and knowledge about specific tasks being grouped together in services.

Advantages of using this architecture

Replaceable: Services become easier to swap because their functionality and communication is well-known.


Technology agnostic: Each service can be developed using the best tools and languages to build it correctly.


Performant: Services are small and lightweight, and, as mentioned previously, use the best tools available.

Upgradable: Services should be interchangeable and upgradable separately.


Productivity: When complexity starts to grow, productivity will be better than in a monolith application.

Dependencies: Because of this architecture being technology agnostic, different dependencies for different services may arise.

 

Complexity: For small applications, the bootstrap complexity is bigger compared to the monolith.

 

End-to-end testing: It becomes more complex to test the application from end to end as the number of services to inter-connect is definitely bigger than in a monolith application.

Costs associated with this architecture

Number one rule: if the complexity of a service is too much, split the service into smaller ones.

Microservices With Node.js

By Alvaro Agamez

Microservices With Node.js

  • 517