Monoliths and Microservices Flashcards
(51 cards)
A monolithic system consists of [multiple/a single] program run by [multiple/a single] process(es).
A single, a single
Each process in a monolithic system is formed into a collection of modules, that communicate via…
Function calls
Monolithic systems are easy to implement because we don’t need to deal with…
Asynchronous connections and communications
Modules in a monolithic system communicate via…
Event callbacks and polling
Monolithic systems are easy to hire for because…
You can look specifically for experts in your given language
Monolithic systems are scaled by…
Buying a better computer
Monolithic systems typically use a [decentralised/centralised] database.
Centralised
Transactions in a database will either…
Commit or abort, there is no half-measure
Atomicity is the property of a database transaction that states…
A transaction will either fail completely or succeed completely, even if the system fails
Consistency is the property of a database transaction that states…
The database must always be in a consistent state, meaning that data must be moved correctly and removed data handled accordingly
Isolation is the property of a database transaction that states…
Transactions cannot see or interact with eachother, performing concurrently as if they were being performed sequentially
Durability is the property of a database transaction that states…
Once a transaction has succeeded, its effects persist, even if the system fails
ACID is an acronym that defines the four desired properties of a database transaction…
Atomicity, Consistency, Isolation and Durability
In the design of monolithic systems, the statement “you should throw one of these away” means…
A team should seek to make their first MVP as fast as possible, because it’s likely to be completely discarded anyway
In the design of monolithic systems, Gall’s Law states…
A team should seek to make the simplest possible MVP
In the design of monolithic systems, You Aren’t Gonna Need It (YAGNI) states…
A team should seek to build an MVP that only has the functionality it needs right now
In the design of monolithic systems, Conway’s Law states…
A team should structure their MVP so that they have a department for each module
In the design of monolithic systems, Dogfooding means…
You should use your own product regularly, but not exclusively, to gain experience as a customer
According to eBay, the best architecture for the starting phase of an enterprise is…
Monolithic, using familiar technology, aiming to delete it all in a few years
According to eBay, cloud architecture is something you should buy and not build, because…
It is faster and cheaper than anything we can build, while also being auto-scalable
According to eBay, the best architecture for the scaling phase of an enterprise is…
Monolithic, unless we reach the point where we require microservices to function, at which we should switch to microservices
How do we know when to switch to microservices? (pick two)
When changes made by teams have to be communicated in advance to avoid conflicts, when it takes too long for features to hit the market, when vertical scaling is no longer sufficient
According to eBay, incremental changes should be…
As small as possible, and large changes should be decomposed into smaller ones
According to eBay, the best architecture for the optimizing phase of an enterprise is…
The one that is the most stable, making only sustainable, incremental improvements in functionality