Self-test Flashcards
- (Event-Driven Architecture Style) For better workflow control, would you use the mediator or broker topology?
Mediator
- Which architecture characteristic is more important to strive for—availability or performance?
Depends on how far you are from ideal point in those (which you measure together with business stakeholders). Never shoot for the best architecture, but rather the least worst architecture.
- What can you derive from a business stakeholder telling you “I needed it yesterday”?
That is an indication to the software architect that time to market is important to that stakeholder.
- What is irrational artifact attachment, and why is it significant with respect to documenting and diagramming architecture?
It is the proportional relationship between a person’s irrational attachment to some artifact and how long it took to produce. If an architect creates a beautiful diagram using some tool like Visio that takes two hours, they have an irrational attachment to that artifact that’s roughly proportional to the amount of time invested, which also means they will be more attached to a four-hour diagram than a two-hour one.
- What are three warning signs you can look at to determine if your team is getting too big? (at least one)
- Process loss (One indication of process loss is frequent merge conflicts when pushing code to a repository)
- Pluralistic ignorance (Pluralistic ignorance is when everyone agrees to (but privately rejects) a norm because they think they are missing something obvious.)
- Diffusion of responsibility (Confusion about who is responsible for what on the team and things getting dropped are good signs of a team that is too large.)
- What is the difference between scalability and elasticity?
Scalability is about gradual increase of the load (over time when more and more users are in the system). Elasticity is about spikes of load (Black friday)
- Provide an example of an architecture fitness function to measure the scalability of an architecture.
Max number of requests per minute the system can respond to
- Assume a system consisting of a single user interface with four independently deployed services, each containing its own separate database. Would this system have a single quantum or four quanta? Why?
This depends on how the UI connects to the backend services. If they use microfrontend then the UI could live without one or more of the services (e.g. UI is a webshop andone of the services provides a recommendation service which isn’t critical). On the other hand some of them might be required for the frontend to work (e.g. the catalog service).
- List the eight fallacies of distributed computing. (Name at least 3)
- The Network Is Reliable
- Latency Is Zero
- Bandwidth Is Infinite
- The Network Is Secure
- The Topology Never Changes
- There Is Only One Administrator
- Transport Cost Is Zero
- The Network Is Homogeneous
- What is the First Law of Software Architecture?
Everything is a tradeoff
- What is the 20-minute rule, and when is it best to apply it?
Spend 20 minutes daily learning new techs. Better at the morning
- Which is preferred within a code base—static or dynamic connascence?
Static is preferrred because it’s easier to refactor
- Can pipes be bidirectional in a pipeline architecture?
No. Each pipe is typically unidirectional and point-to-point. Remember that this is mostly used for ETL
- What is the architecture sinkhole anti-pattern?
This anti-pattern occurs when requests move from layer to layer as simple pass-through processing with no business logic performed within each layer.
- What is the difference between technical partitioning and domain partitioning? Provide an example of each.