EC Flashcards
What does the characteristic: ‘small in size’ mean for a microservice?
Very compact pieces of software
Measured in lines of code or number of features
What does the characteristic: ‘messaging enabled’ mean for a microservice?
Microservices can communicate with each other and between different machines
What does the characteristic: ‘bounded by contexts’ mean for a microservice?
Business domain model may be broken down into smaller pieces which bound the boundaries of microservices
What does the characteristic: ‘independently deployable’ mean for a microservice?
No microservice depends on another microservice, therefore deployment carries less risk, therefore less testing is required
What does the characteristic: ‘built and released with automated processes’ mean for a microservice?
Build tools make the process repeatable and reliable, while version control allows for reversability
What does the characteristic: ‘built and released with automated processes’ mean for a microservice?
Build tools make the process repeatable and reliable, while version control allows for reversibility
What does the property: ‘technological heterogeneity’ mean for a microservice?
Microservices can be created in any technology in any language, a suite of MS can be written in a variety of langs
What does the property: ‘resilience’ mean for a microservice?
MS can mask failures by using timeouts, circuit breakers or bulkheads
What does the property: ‘ease of development’ mean for a microservice?
MS can be deployed incrementally and at different speeds making it easier to exploit new business opportunities
What does the property: ‘scaling’ mean for a microservice?
MS can be allocated different amounts of computing capacity
What does the property: ‘organizational alignment’ mean for a microservice?
Companies can change their organisational structure to correspond with their system structure
What does the property: ‘composability’ mean for a microservice?
Microservices can be combined in multiple different ways to meet new business requirements
What does the property: ‘replacability’ mean for a microservice?
Replacing portions of an application is easy as applications are small
What is the Single Responsibility Principle?
One should gather together those things that change for the same reason, and separate things that change for different reasons
What is the Law of Demeter?
The LoD states that one should make components which only know about the structure and properties of components they deal with directly
What is the rule of ‘Dont Repeat Yourself’?
One should only merge things that are duplicated to avoid wasting effort making something that is needlessly complicated and hard to maintain
What is high-cohesion?
Behaviour related to a microservice is found within that microservice - nowhere else
What is loose coupling?
A change to one microservice does not require a change to another - high levels of encapsulation