The Death of microservices — Distributed Monolith 101

  • Improving performance
  • Reducing costs — Better code — using fewer resources
  • Pure developer joy and productivity with a modern, up-to-date solution — a.k.a productivity.
  • A simple bug fix
  1. Complexity: in form, but not limited by Eventual Consistency, Distributed programming(failures).
  2. Duplication: Data duplication, Code duplication, DevOps code duplication.
  1. It has more failure points — you made it distributed buddy.
  1. Shared-Libs and Drivers: Yeah. It’s is how you create a distributed monolith. More to come.
  2. Lack of Encapsulation: Tables. People still share tables; you know the worst? It’s not only “tables,” you need to worry.
  1. Copy Code: Why dont you copy some code instead of added 30 dependencies for five lines of code? Sound bad but isn’t.
  2. Use package explosion: Plenty of tools that can help you with that. More to come — will comment more soon.
  3. Encapsulation: Hide your code, have public interfaces(few), and do not leak your implementation; neither make it public.
  • Complex to use: Often based on a popular framework like Spring, Hibernate, or JEE but much harder to use.
  • Lack of documentation: No Javadoc, no samples, no wiki, nada!
  • Lack of abstractions: Often, make your life worst. Often do not provide the classical two levels of concepts to fix problems — level 1: Abstraction, Level 2: Low-level access.
  • People hate it: They can’t use the web to search, they can’t tell their friends, they cant use it in other jobs.
  1. It has coupled with other libs: It doesn’t take time for your libs to depend on all your other libs. Coupling is the root of all evil. Them you can’t upgrade anything, can’t add anything in your service until all other services do the same.
  2. Hides to many things from you: This is one of the main traits of a framework, which means: “To frame the work.”
  1. Caches (IMOC): Redis, Memcached, RocksDB, you name it.
  2. Configurations: XML, Json, Yaml, whatever.
  1. Self-Service Automated Service
  2. Sidecars
  3. Runtime Platforms

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store