How to Identify you are not using Microservice Architecture.
Assume everyone starts with 100 points.
Everyone loses ten points for each assertion that is true.
Not using Microservices hit list
- You don’t deploy to production more than once a month
- You always have to deploy a release chain of services
- You deploy multiple EAR or WAR files to the same Java EE container
- You make a blocking call to another service while servicing requests to your service
- You make a blocking call to a database while servicing requests to your service
- Your service has more than 20 classes
- You share a database between more than one set of services or applications
- You don’t deploy to a containerized or virtualized environment
- You don’t utilize service discovery
- You can have cascading failures
- You don’t implement circuit breakers and are not fault tolerant
- You don’t use async calls
- You use more than 200 threads in a single service
- You don’t monitor health status of your services
- You don't monitor statistics of your services
- You don’t have distributed logging
- You don’t use HTTP and JSON
- You don't use messaging
- Documentation for your services do not include curl commands
- You use WSDL
- You use XML as a transport
- You use an ESB
- You use BPEL
- You use EAR and WAR files
- You use a Java EE container
If your score is below 70%, you are not using Microservices Architecture.
Microservices should be:
- Quickly deployable
- Deployed often
- Monitored: health, distributed logging, statistics
- Use Service Discovery to find other services
- Use async communication
- Prevent cascading failure and be fault tolerant
- Use web technologies like JSON, HTTP, WebSocket or messaging
Being async, using service discovery, preventing cascading failures, and being fault tolerant are all part of Reactive Microservices
Read more about the history of microservices, how it is different from SOA, and just what are Microservices.