- Service Authoring : Development interfaces that abstract the core patterns of microservice solutions.
- Service Discovery : Infrastructure for dynamically publishing and discovery microservices in a specific domain.(Consul.io,Etcd etc.)
- Service Description : Metadata models for describing the capabilities of microservices.(Swagger,Thrift etc.)
- Persistence : Microservices require isolated data persistence models to maintain its state.(NO SQL Databases)
- Messaging Middleware : Queueing,PuSub and other fundamental message exchange patterns should me enabled in microservice solutions.(Kafka,RabbitMQ etc.)
- Deployment Automation : Microservices technologies should abstract the pr
The Reactive Principles are
- Responsive : System responds fast in a consistent way and encourages the user's interaction
- Resilient : System stays responsive even in case of failure
- Elastic : System stays responsive under varying workload.
- MessageDriven : System internally uses asynchronous communication with messages.
- Service API : Allows to declare and implement synchronous and asynchronous services.
- Persistence API : Provides persistence using patterns like EventSourcing and CQRS.
- Development Env : Allows to run the services with few commands.
- Production Environment : Allows deployment,monitoring,scaling.
- Does the service have a sole/single responsibility ?
- Is the service autonomous ?( should work even other services are unavailable)
- Does the service own its data ?
- Immutability
- Event Sourcing etc