Microservices - bradyclifford/sdlc GitHub Wiki

Pending ...

  • Team communication: Teams often need to communicate to solve integration problems, which may lead to politics and governance issues.
  • Coupling: It’s extremely important to achieve loose coupling between services, otherwise you will easily end up with a distributed monolith.
  • Quality criteria: To find what's really needed regarding consistency, performance, scalability and robustness you should do an early assessment of your application.
  • Technology: Although REST is commonly used, it’s not the only option for communication.

Challenges

  • Service discovery. A way for a service to find the URLs of services it communicates with.
  • Resilience, including how errors and downtime is handled. A graceful degradation of services is important to avoid one malfunctioning service taking a whole application down.
  • Load balancing, to be able to handle increasing load. This can be achieved in different ways, depending on the environment the application is running in.

Resources: