Monoliths Flashcards

1
Q

What is a monolithic system?

A

A single program run by a single process formed from a collection of modules that communicate by procedure calls.

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

Why is it easy to develop a monolith?

A

All code is in one place and in one language, allowing the team to leverage their existing skills, tools, and experience.

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

Why is it easy to test a monolithic system?

A

Testing can be done on a single executable with automated test suites, and debugging is straightforward.

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

How can a monolithic system be scaled?

A

Through vertical scaling, which involves replacing an existing machine with a more powerful one.

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

What type of database does a monolithic enterprise typically use?

A

A centralised database

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

Why is a centralised database important?

A

It ensures the accuracy, completeness, and consistency of data.

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

What are the possible outcomes of a database transaction?

A

A transaction either commits (completes successfully) or aborts (fails and is rolled back).

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

What does ACID stand for?

A

Atomicity, Consistency, Isolation, Durability

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

What is Atomicity in ACID transactions?

A

Transactions must succeed or fail completely, even in case of system failures.

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

What is Consistency in ACID transactions?

A

A transaction starts and ends with the database in a consistent state.

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

What is Isolation in ACID transactions?

A

Concurrent transactions must behave as if executed sequentially.

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

What is Durability in ACID transactions?

A

Once a transaction completes successfully, its effects persist even after system failures.

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

What is the meaning of ‘Plan to Throw One Away’ in software development?

A

Teams should anticipate discarding and rebuilding their first monolithic MVP to incorporate lessons learned.

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

What is Gall’s Law?

A

Successful complex systems evolve from simpler ones rather than being designed from scratch.

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

What is YAGNI (You Aren’t Gonna Need It)?

A

A principle from extreme programming (XP) stating that programmers should not add functionality until it is needed.

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

What is Conway’s Law?

A

An organization’s system design will mirror its internal communication structure.

17
Q

What is ‘Eating Your Own Dogfood’?

A

The practice of using one’s own products to test and improve them from a customer perspective.

18
Q

What did eBay V2 architecture consist of?

A

A single 3.4 million line-of-code C++ library that hit the 16k method limit per class.

19
Q

What is the lesson from the evolution of eBay’s architecture?

A

No one starts with microservices, but at scale, everyone moves to them. However, most (99%) never reach that scale.

20
Q

What architecture is appropriate for a startup phase?

A

A monolithic one that is ‘just enough’ to meet evolving customer needs as cheaply as possible.

21
Q

What does ‘just enough’ architecture look like?

A

It uses simple, familiar technology, often a rapid prototyping framework (Ruby, Rails, PHP, etc.).

22
Q

Why should one buy software instead of building it?

A

Because buying is faster, cheaper, and often better—open source is preferred.

23
Q

What architecture is appropriate for the scaling phase of an enterprise?

A

A microservices-based architecture where teams can develop and deploy independently.

24
Q

How should incremental changes be made?

A

As small as possible, maintaining backward and forward compatibility.

25
What is a 'system of record'?
The single service that owns any piece of data—other copies are read-only, cached versions.
26
What architecture is appropriate for the optimizing phase of an enterprise?
A stable architecture that makes only incremental improvements in functionality and efficiency.