Architecture & CloudConference50min
Evolutionary Architecture: How do you build systems that can evolve?
The talk presents evolutionary architecture, an approach that treats architecture as continuously adaptable rather than fixed. It uses architectural characteristics and fitness functions to guide incremental changes, helping systems evolve with changing requirements while preserving qualities like scalability, security, agility, and testability.
talk.summaryAiDisclaimer
Nikhil Barthwal
A common practice among software engineers is to define the architecture of a complex system in the beginning and use it as a blueprint for future implementation. This approach performs poorly in practice because requirements keep evolving, and the initially defined architecture is hard to change later. This leads to expensive re-architecting and re-implementation work.
Evolutionary Architecture is an approach that treats architecture as an evolvable entity with no end state, designed to adapt to ever-changing requirements. An evolutionary architecture is defined as one that supports guided, incremental change across multiple dimensions.
This approach involves defining a set of architectural characteristics and an objective function called a fitness function, which evaluates how close a prospective design solution is to achieving its objectives. The fitness function is used to make guided incremental changes to the system.
Architectural characteristics are defined across multiple dimensions, such as scalability, security, agility, and the ability to test & deploy, and the impact of each incremental change is considered across all dimensions.
The objective of this talk is to demonstrate how principles of evolutionary architecture can be used to design systems whose architecture does not degrade over time and to develop an understanding of how changes to the system would impact its architectural characteristics across multiple dimensions.
Evolutionary Architecture is an approach that treats architecture as an evolvable entity with no end state, designed to adapt to ever-changing requirements. An evolutionary architecture is defined as one that supports guided, incremental change across multiple dimensions.
This approach involves defining a set of architectural characteristics and an objective function called a fitness function, which evaluates how close a prospective design solution is to achieving its objectives. The fitness function is used to make guided incremental changes to the system.
Architectural characteristics are defined across multiple dimensions, such as scalability, security, agility, and the ability to test & deploy, and the impact of each incremental change is considered across all dimensions.
The objective of this talk is to demonstrate how principles of evolutionary architecture can be used to design systems whose architecture does not degrade over time and to develop an understanding of how changes to the system would impact its architectural characteristics across multiple dimensions.
Nikhil Barthwal
Nikhil Barthwal is passionate about building distributed systems. He has several years of work experience in both big companies & smaller startups and also acts as a mentor to several startups. Outside of work, he speaks at international conferences on several topics related to Distributed systems & Programming Languages. You can learn more about him via his homepage: www.nikhilbarthwal.com.