By author.

๐—ช๐—ต๐—ฎ๐˜ ๐—œ ๐—น๐—ฒ๐—ฎ๐—ฟ๐—ป๐—ฒ๐—ฑ ๐—ณ๐—ฟ๐—ผ๐—บ ๐˜๐—ต๐—ฒ ๐—ฆ๐—ผ๐—ณ๐˜๐˜„๐—ฎ๐—ฟ๐—ฒ ๐—”๐—ฟ๐—ฐ๐—ต๐—ถ๐˜๐—ฒ๐—ฐ๐˜๐˜‚๐—ฟ๐—ฒ: ๐—ง๐—ต๐—ฒ ๐—›๐—ฎ๐—ฟ๐—ฑ ๐—ฃ๐—ฎ๐—ฟ๐˜๐˜€.

Arafat Ashrafi Talha
3 min readJan 2, 2024

--

I recently read the book โ€œ๐—ฆ๐—ผ๐—ณ๐˜๐˜„๐—ฎ๐—ฟ๐—ฒ ๐—”๐—ฟ๐—ฐ๐—ต๐—ถ๐˜๐—ฒ๐—ฐ๐˜๐˜‚๐—ฟ๐—ฒ: ๐—ง๐—ต๐—ฒ ๐—›๐—ฎ๐—ฟ๐—ฑ ๐—ฃ๐—ฎ๐—ฟ๐˜๐˜€โ€ by Neal Ford, Mark, Richards, Pramod Sadalage & Zhamak Dehghani. The book is mainly related to breaking monolith applications into microservices and could be an excellent companion to the book โ€œMonolith to Microservices,โ€ by Sam Newman.

The book emphasizes the step-by-step approach of breaking down monolith, with different patterns for each step and balancing tradeoffs for those patterns. The book is titled โ€œHard Parts,โ€ yet most of the concepts in the book are familiar.

Here are ๐˜๐—ต๐—ฒ ๐˜๐—ต๐—ถ๐—ป๐—ด๐˜€ ๐—œ ๐—น๐—ถ๐—ธ๐—ฒ๐—ฑ from the book:

1. The most essential architecture skill is how to make decisions and balance trade-ffs

Photo by Juanjo Jaramillo on Unsplash

2. Advice on how to do a modern tradeoff analysis:

๐Ÿ”น Find what parts are entangled together.

๐Ÿ”น Analyze how they are coupled to one another.

๐Ÿ”น Assess tradeoffs by determining the impact of change on interdependent systems

3. The main modularity drivers are:

๐Ÿ”น Speed-to-market, achieved by architectural agility, i.e., the ability to respond quickly to a change.

๐Ÿ”น Scalability, where the need for more scalability support increased user activity

๐Ÿ”น Fault tolerance, the ability of an application to fail and continue to operate

Photo by Markus Spiske on Unsplash

4. Breaking down monolith with the two methods:

๐Ÿ”น Component-based decomposition (if monolith is modular): it applies different refactoring patterns for extracting components to form a distributed architecture in an incremental way

๐Ÿ”น Tactical forking (if the monolith is a big ball of mud): copy the whole monolith and remove the part not needed

5. Sizing components

๐Ÿ”น Calculate the total number of statements (with ;) with a given component โ€” the ideal size of 1 to 2 standard deviations from the average component size.

Photo by Zan on Unsplash

Here are ๐˜๐—ต๐—ฒ ๐˜๐—ต๐—ถ๐—ป๐—ด๐˜€ ๐—œ ๐—บ๐—ถ๐˜€๐˜€๐—ฒ๐—ฑ in the book:

1. Although the book is abstract (as expected from architects), it doesnโ€™t go into any implementation details or technologies or mention architectural patterns.

2. The book follows Sysops SAGAโ€™s fictional story, whereas a real-life example would be more worthwhile. In this way, some things would sound artificial or forced.

3. I need to catch the data, as the book makes many assumptions. As it is not backed with any real-life project (pricing, etc.), we are still determining what metrics we would get.

4. I missed the structured approach. It started well with essential concepts, such as modularity and decomposition, and then twelve immediately into components and pulled apart data. Then, it went to service granularity and reuse patterns and data ownership and access patterns later.

--

--

Arafat Ashrafi Talha
Arafat Ashrafi Talha

Written by Arafat Ashrafi Talha

M.Sc. in Advanced Networking & Cyber Security | CEHv12 | Cybersecurity Enthusiast | Connect on LinkedIn: linkedin.com/in/arafat-ashrafi-talha

No responses yet