Software Architecture Flashcards

1
Q

No Cache:

When is a cache not useful or even dangerous?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Event-Driven ArchitectureL:

Why does Event-Driven Architecture improve scalability?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Readibility:

What makes code readable?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Emergent and Evolutionary:

What is the difference between emergent design and evolutionary architecture?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Scale-Out, Scale-Up:

Scale-out vs scale-up: how are they different? When to apply one, when the other?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Failures User Sessions:

How to deal with failover and user sessions?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

CQRS:

What is CQRS (Command Query Responsibility Segregation)? How is it different from the oldest Command-Query Separation Principle?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

n-tier:

The so-called “multitier architecture” is an approach to designing a client-server system aimed to keep physically and logically separated presentation, application processing, data management, and other functions. The most widespread of the multitier architectures is the three-tier architecture. Would you discuss the pros and cons of such an approach?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Scalability:

How would you design a software system for scalability?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

C10K:

Someone gave the name “The “C10k problem” to the problem of optimizing network sockets to handle over 10.000 open connections at once. While handling 10.000 concurrent clients is not the same as handling 10.000 open connections, the context is similar. It’s a tough challenge anyway, and no one is expected to know every single detail to solve it. It may be interesting to discuss the strategies you know to deal with that problem. Would you like to try it?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

P2P:

How would you design a decentralized (that is, with no central server) P2P system?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

CGI:

You may recall that Common Gateway Interface (CGI) is a standard protocol for web servers to execute programs (CGI scripts) that execute as Command-line programs on a server, and that dynamically generate HTML pages when invoked by an HTTP request. Perl and PHP used to be common languages for such scripts. In CGI, an HTTP request generally causes the invocation of a new process on the server, but FastCGI, SCGI, and other approaches improved the mechanism, raising the performance, with techniques such as preforking processes. Can you discuss why CGI became obsolete and was instead replaced with other architectural approaches?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vendor Lock-in:

How would you defend the design of your systems against vendor Lock-in?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Pub/Sub:

What are the disadvantages of the publish-subscribe pattern at scale?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

CPUs:

What’s new in CPUs since the 80s, and how does it affect programming?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Performance:

In which part of the lifecycle of a software performance should be taken in consideration, and how?

A
17
Q

DDOS:

How could a denial of service arise not maliciously but due to a design or architectural problem?

A
18
Q

Performance and Scalability:

What’s the relationship between performance and scalability?

A
19
Q

Tight Coupling:

When is it OK (if ever) to use tight coupling?

A
20
Q

Cloud Readiness:

What characteristic should a system have to be cloud-ready?

A
21
Q

Emergent Architecture:

Does the unity of design imply an aristocracy of architects? Putting it simply: can good design emerge from a collective effort of all developers?

A
22
Q

Design, Architecture, Functionality, Aesthetic:

What’s the difference between design, architecture, functionality, and aesthetics? Discuss.

A