Self-test Flashcards

1
Q
  1. (Event-Driven Architecture Style) For better workflow control, would you use the mediator or broker topology?
A

Mediator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Which architecture characteristic is more important to strive for—availability or performance?
A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. What can you derive from a business stakeholder telling you “I needed it yesterday”?
A

That is an indication to the software architect that time to market is important to that stakeholder.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. What is irrational artifact attachment, and why is it significant with respect to documenting and diagramming architecture?
A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. What are three warning signs you can look at to determine if your team is getting too big? (at least one)
A
  • 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.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. What is the difference between scalability and elasticity?
A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Provide an example of an architecture fitness function to measure the scalability of an architecture.
A

Max number of requests per minute the system can respond to

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. 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?
A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. List the eight fallacies of distributed computing. (Name at least 3)
A
  1. The Network Is Reliable
  2. Latency Is Zero
  3. Bandwidth Is Infinite
  4. The Network Is Secure
  5. The Topology Never Changes
  6. There Is Only One Administrator
  7. Transport Cost Is Zero
  8. The Network Is Homogeneous
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. What is the First Law of Software Architecture?
A

Everything is a tradeoff

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. What is the 20-minute rule, and when is it best to apply it?
A

Spend 20 minutes daily learning new techs. Better at the morning

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Which is preferred within a code base—static or dynamic connascence?
A

Static is preferrred because it’s easier to refactor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Can pipes be bidirectional in a pipeline architecture?
A

No. Each pipe is typically unidirectional and point-to-point. Remember that this is mostly used for ETL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. What is the architecture sinkhole anti-pattern?
A

This anti-pattern occurs when requests move from layer to layer as simple pass-through processing with no business logic performed within each layer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. What is the difference between technical partitioning and domain partitioning? Provide an example of each.
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. List the three levels of knowledge in the knowledge triangle and provide an example of each.
A

Known knowns, Known unknowns, Unknown unknowns

17
Q
  1. What is a saga in microservices?
A

A pattern to update/call multiple service

18
Q
  1. What would you do if you had a third-party plug-in that didn’t conform to the standard plug-in contract in the core system?
A

<Discussion>
</Discussion>

19
Q
  1. What risk rating (1-9) would you assign to unproven or unknown technologies?
A

9 (highest)

20
Q
  1. What is the difference between a replicated cache and a distributed cache? Which one is typically used in space-based architecture?
A

The goal of the architecture is to minimize the read-writes from the db. Space-based architecture mostly relies on replicated caching, although distributed caching can be used as well.

21
Q
  1. List three basic checklists that would be good for a development team. (At least one)
A
  • Developer code completion checklist (DoD)
  • Unit and functional testing checklist (edge-cases test)
  • Software release checklist (prevent human-error)
22
Q
  1. What technique can you use to manage database changes within a service-based architecture?
A

Database mirroring

23
Q
  1. What are three basic criteria in which you would mark the status of an ADR as Proposed?
A

Proposed means it needs to be approved by someone (stakeholders, other architects etc.). So the 3 criteria are:

Cost, cross-team impact, and security.

E.g. If the cost of the architecture decision exceeds a certain amount, then it must be set to Proposed status and approved by someone else.

24
Q
  1. Is service-oriented architecture technically partitioned or domain partitioned?
A

Domain