Designing a Modern Distributed System with EDA
by Daniel Selans
Software architecture helps businesses to achieve competitive advantage in many ways, like reducing costs and improving time-to-market. But to extract architecture's full potential, the software, business domain, and organization need to be aligned as independent value streams. This talk is about the principles, heuristics, and practical techniques that engineers, architects, and leaders can apply to architect their systems as independent value streams.
AWe are used to treating coupling as the necessary evil. Hence, we aim to break systems apart into the smallest services possible, in the ever-lasting quest of decoupling everything. But what results are we getting by following this reasoning? — Instead of the promised land of evolvable systems, many such “decouple everything” endeavors lead straight into the chains of distributed monoliths. Can we do better? What if there is a better way to handle coupling in distributed systems? Or even, what if instead of fighting coupling, we can use it as a heuristic for designing systems that are actually evolvable and maintainable? That’s exactly what you will learn in this session: what coupling is, and how you can use it as a design tool. We will start by taking a journey through time, and explore the different models of evaluating coupling. Next, we will combine the existing knowledge into a coherent model — a simple function for evaluating a system’s decomposition into components. This function will allow you to assess the expected effort for evolving a system and use it as a heuristic for optimizing architectural design decisions.
Have you ever had this argument about existing code, when someone is trying to prove to you that you have a bug, you are arguing that it is a feature, and both sides realize (after extensive archeological dig through existing documentation) that the reasons behind this code’s functionality have been lost to time? The better question is not “have you ever”, but “how often have you had this argument”. All architects experience this at one time or another, wondering what were the motivations for a decision, what were the assumptions or constraints at the time, and was there an explicit decision to begin with. While we all recognize how important decisions are in software architecture, we don’t often have a framework for identifying and making architectural decisions. In this talk, I will introduce a step-by-step guide that will help you identify, frame and make decisions about your software architecture that will leave no room for “it’s a feature, not a bug” arguments.
Software architecture is having a moment, from best selling books to packed classes, the software industry acknowledges the importance of the parts of software resistant to internet searches. Ample pixels have been spilt talking about patterns, decomposition, styles, diagrams and more and all to good ends! But when it comes time to review an architecture, what should you do? What factors should you consider? How do you provide constructive feedback? But we won’t just talk theory, we’ll work through real world examples, providing you a chance to practice this vital skill.
Serverless doesn’t mean there are no servers. It’s a metaphor for a way of building applications. In this presentation, we'll start with a short introduction to Serverless Cloud Functions and what it means to developers, and why it's important to understand this technology. We will discuss how serverless fits into the world of Microservices, and examine the pyramid of application development and deployment. We’ll put on our architect hat, and also look at Serverless options and how it impacts applications architecture.
Microservices has been around for over a decade now. Over the years we’ve learned a lot, and have developed new practices, processes, techniques, and tools to wrangle this highly complicated architecture style. In this informative and entertaining session Mark Richards discusses the current state of microservices, including some of the lessons learned over the years. In the session he also talks about some of today's current techniques, tips, and practices to help maneuver around the complexity surrounding microservices.
Does your team suffer from: Inconsistent views of your systems? Producing incohesive solutions? Ineffective architecture practices and tools? Introducing Bytesize Architecture Sessions! Bytesize Sessions are a workshop format that enable collaborative and iterative knowledge sharing. This talk will inform you about how to run Bytesize Sessions resulting in the following benefits: improved systems thinking, enriching collaboration within the team, understanding architecture practices and tools in a safe environment, a feedback loop controlled by the team that produces better documentation across sessions, revealing the Bermuda Triangles!
What does a large-scale micro component architecture look like in practice? In this talk we take a data-driven deep dive into Spotify’s 15 year old architecture. What patterns emerge across thousands of components (client features, services, data pipelines and websites) and their dependencies? By thorough instrumentation we collect data on what our architecture looks like in practice and can apply analysis on our software and social dependencies and measure how this class of architectures works at scale and speculate on how to scale them further.
Sociotechnical systems are nonlinear, dynamic systems that can exhibit complex and unpredictable behavior. These systems are constantly changing to provide value to customers, gain a competitive edge in the market or simply survive. Understanding the evolution patterns of sociotechnical systems is important to anticipate their behavior, designing improvement trajectory and managing change. In this talk, we explore evolution from real world use cases in its broadest scope, e.g., modernization, migration, adaptation, restructuring… We combine software evolution with the organization dynamics and people interactions to identify evolution patterns in sociotechnical systems. Finally, we study the impact of leadership and decision making on the success or failure of these cases.
Modern software engineering practices stress the need to optimise for learning throughout the software delivery process, which means that we need to create rapid feedback loops to allow this learning. Feedback loops work by allowing us to see how our work affects key measures such as quality, complexity, scalability, security, frequency of release, lead time, change failure rate and many other more specific measures for our individual situations. However the difficulty we often face is that it is difficult to measure many of the factors that we care about. This is often because we don't treat the ability to measure our systems as a requirement, but try to add measurement on-demand when needed. Would it not be better to treat measurement as an explicit architectural concern and incorporate it into our architecture practices? In this talk we will try to do just that, by examining what types of measurement we are likely to need, the techniques we can use to provide those types of measurement and how to incorporate consideration of measurement as an architectural concern into our work.
As applications move to containers and migrate to the cloud, they become ever more complex, and it's increasingly important to monitor, analyze, and diagnose their behaviour. Observability is a new way of thinking about monitoring and understanding your applications. It’s supported by a growing range of open source tools and standards - part of the new wave of technologies that modern developers need to go fully Cloud Native. Join Ben Evans to get the basics of Observability, including the fundamentals of metrics, logs, and tracing. You'll learn how to achieve observability using OpenTelemetry, the emerging Open Standard for Observability, and we'll meet several other related OSS libraries and tools along the way.
01/06/2023 - 31/07/2023
1/08/2023 - 31/08/2023
1/09/2023 - 30/09/2023
Looking for exclusive opportunities at GSAS 2023? Choose your preferred package.
Join us in championing diversity and inclusion in the tech industry! We are seeking sponsors who share our commitment to creating a more inclusive and equitable software architecture community.
Reach Out
Avinguda Diagonal, 547, 08029 Barcelona, Spain
AXA Auditorium is easily accessible by public transport, from bus, metro and train stations.
Car/Taxi: 25 min. ride from the Airport
Train: R1/R4
Metro: L3/L5
Phone: +34934815085
Email: gsas@apiumhub.com