Learn how to create innovative architecture styles by combining and terraforming various approaches, focusing on making trade-offs and mitigating risks to solve real-world problems
Key Features
- Learn how to analyze and dissect various architecture styles into building blocks
- Combine and add your own ideas to create custom solutions
- Make informed decisions by navigating trade-offs and compromises
- Purchase of the print or Kindle book includes a free PDF eBook
Book Description
Software Architecture with Kotlin is an insightful guide that explores various styles of software architecture with a focus on using the Kotlin programming language. This book delves into the principles, practices, and patterns that shape the architectural landscape of modern software systems.
The book starts by establishing a strong foundation in software architecture, explaining key concepts such as architectural qualities and principles. You’ll learn how architectural decisions impact the quality of a system, such as scalability, reliability, and extendability. It address modern architecture topics like microservices, serverless, and event-driven architectures, providing insights into the challenges and trade-offs involved in adopting these architectural styles. You’ll discover practical tools that will help you make informed decisions and mitigate risks. All architectural patterns in this book are demonstrated using Kotlin.
With its practical approach, real-world examples, and focus on Kotlin, this book will help you become a more proficient and impactful software architect.
What you will learn
- Master the fundamental principles of architecture and design
- Explore common architectural styles and their applicable scenarios
- Analyze, break down, compare, and terraform architecture styles to solve practical problems
- Reason, negotiate, and make difficult choices in the absence of ideal solutions
- Mitigate risks when making compromises and trade-offs
- Create scalable, sustainable, maintainable, and extendable software systems
- Use the Kotlin programming language to achieve your architectural goals
Who this book is for
This book is for developers with basic Kotlin knowledge seeking a deeper understanding of architecture, Kotlin Android developers who are starting to get involved in backend development, and Java developers transitioning to Kotlin. It’s also ideal for software architects who are less experienced in Kotlin and want to enhance their skills, as well as those who enjoy discussing and exploring unique architectural concepts.
Table of Contents
- The essence of software architecture
- Principles of software architecture
- Polymorphism and alternatives
- Peer-to-peer and client-server architecture
- Model-view-controller (MVC) and Model-view-viewmodel (MVVM)
- Micro-frontend, microservices, and serverless
- Modular and layered architectures
- Domain-driven development (DDD) and CQRS
- Event-driven, event-sourced, and reactive systems
- Idempotency, replication and recovery models in distributed systems
- Auditing and monitoring models
- Performance and scalability
- Testing
- Security
- Beyond architecture