Architecture Flashcards
To learn more about and retain architectures I have encountered in my career
What is a distributed monolith architecture?
It is an anti-pattern in which a monolith is separated into multiple services that are highly dependent and do not adopt the best practices of miscroservices architecture.
What is a cell based architecture?
Multiple isolated and independent instances of a workload, called a cell, handling a subset of the overall workload.
What are the layers of a cell based architecture?
Cell router, Cell, and Control plane
What is a microservice based architecture?
A collection of small autonomous services that work together that are bounded by context, autonomously developed, independently deployable, decentralized and built and released with automated processes.
What kind of architecture is diagrammed in the attached image?
Cell based architecture
What is an example of a distributed monolith architecture?
Any instance in which two or more services cannot be deployed in isolation. One cannot be changed without the other also being changed.
What is an ETL pipeline?
A series of processes in which data is extracted from one or more sources, transformed - usually into a standardized format - and then loaded into a target repository, usually a database or data warehouse.
What is the purpose of cell based architecture?
Cell based architecture is aimed at predictable scaling and limiting impact of failures.
What is an example of a cell based architecture?
When the entire production environment is replicated. Or a logical subset.
How does a cell based architecture reduce the impact of failures?
By isolating failures to a single cell and avoiding single points of failure.
How does cell based architecture allow for predicable scaling?
By capping each cell to a fixed maximum size.
What does SOLID stand for?
SOLID stands for:
S - Single-responsibility Principle
O - Open-closed Principle
L - Liskov Substitution Principle
I - Interface Segregation Principle
D - Dependency Inversion Principle
What does single responsibility mean?
A class should have one and only one reason to change, meaning that a class should have only one job.
What is the open closed principle?
Objects or entities should be open for extension but closed for modification.
What is the liskov substitution principle?
Let q(x) be a property provable about objects of x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T.
This means that every subclass or derived class should be substitutable for their base or parent class.
What is interface segregation?
A client should never be forced to implement an interface that it doesn’t use, or clients shouldn’t be forced to depend on methods they do not use.
What is the dependency inversion principle?
Entities must depend on abstractions, not on concretions. It states that the high-level module must not depend on the low-level module, but they should depend on abstractions.
What are the typical building blocks of data intensive applications?
- Data storage (databases)
- Remembering the results of expensive operations to speed up reads. (caching)
- Allowing users to filter or search data (search indexes).
- Asynchronously send messages to be handled by another process. (stream processing)
- Periodically crunch large amounts of data (batch processing)
How do you make systems reliable?
- Designs systems in a way that minimizes opportunities for error.
- Decouple the places where people make the most mistakes from the places where they can cause errors.
- Test thoroughly.
- Allow quick and easy recovery from human error.
- Set up clear and detailed monitoring, such as performance metrics and error rates (telemetry).
- Implement good management practices.
What is scalability?
Scalability describes a systems ability to handle increased load.
How do you describe load?
Through load parameters specific to your system (cache hits, simultaneous people in a chat room, db transactions, requests).
Latency vs response time
The response time is what the user sees, latency is the duration that a request is waiting to be handled.
What’s the best way to measure performance?
By using percentiles and a median value.
What’s the best way to measure performance?
By using percentiles and a median value.