InfoQ Homepage Architecture Content on InfoQ
-
Introducing the RIG Model - the Puzzle of Designing Guaranteed Data-Consistent Microservice Systems
The RIG model formulates three rules for a saga call chain. Using a gamified RIG tool, consisting of three main RIG puzzle pieces, teams can model a microservice system that guarantees eventual data consistency.
-
Accelerating Technical Decision-Making by Empowering ICs with Engineering Strategy
Carta harnesses the power of a small group of senior engineers called navigators to bridge the gap between global strategy and local decision-making, using a written engineering strategy. Navigators replace a need for consensus and boost velocity by combining technical context, domain context, strategic alignment, and judgment to make engineering decisions quickly.
-
9 Steps towards an Agile Architecture
Just as a Minimum-Viable Architecture (MVA) approach does not create a system’s architecture in a single step, adopting an MVA approach takes a series of incremental steps as well. These organizational changes start with a single development team and use feedback to evolve the process as more teams are brought in.
-
Is Your Test Suite Brittle? Maybe It’s Too DRY
One important design principle in software development is DRY – Don’t Repeat Yourself. However, when DRY is applied to test code, it can cause the test suite to become brittle — difficult to understand, maintain, and change. In this article, I will present some indications that a test suite is brittle, guidelines to follow when reducing duplication in tests, and better ways to DRY up tests.
-
Article Contest: Write an Article for InfoQ and Win a QCon or Dev Summit Ticket
InfoQ encourages software practitioners and domain experts to submit full-length technical educational articles.
-
InfoQ Software Architecture and Design Trends Report - April 2024
The InfoQ Trends Reports offer InfoQ readers a comprehensive overview of key topics worthy of attention. The reports also guide the InfoQ editorial team towards cutting-edge technologies in our reporting. In conjunction with the report and trends graph, our accompanying podcast features insightful discussions among the editors digging deeper into some of the trends.
-
Managing 238M Memberships at Netflix
In this article Surabhi Diwan shared how the Netflix membership team does distributed systems: the architecture bets, technology choices, and operational semantics that serve the needs of Netflix’s ever-growing member base.
-
Architecting for High Availability in the Cloud with Cellular Architecture
Cellular architecture is a design pattern that helps achieve high availability in multi-tenant applications. The goal is to design your application so that you can deploy all of its components into an isolated "cell" that is fully self-sufficient. It can benefit your customers regarding availability and ensure you hit your SLAs.
-
Zero-Knowledge Proofs for the Layman
This article will introduce you to zero-knowledge proofs, a kind of cryptography you can use to provide the proof you know a secret, such as a private key or the solution to a problem, without ever sharing it to an interested party. While many articles exist on the topic, this will not require any high math knowledge.
-
Getting Technical Decision Buy-In Using the Analytic Hierarchy Process
Making large, important technical decisions is a critical aspect of a senior individual contributor's role. This article examines how Comcast has employed the Analytic Hierarchy Process (AHP), a decision-making framework developed in the 1970s, and adapted it for making technical and non-technical decisions both large and small.
-
Agile Architecture, Lean Architecture, or Both?
When it comes to software architecture, should you adopt an agile or a lean approach? The answer, of course, is "it depends." Agile is better suited for situations where you know what you need, but not how to build it. Lean is more appropriate when requirements are certain and you want to optimize a well-known process.
-
Testing Machine Learning: Insight and Experience from Using Simulators to Test Trained Functionality
When testing machine learning systems, we must apply existing test processes and methods differently. Machine Learning applications consist of a few lines of code, with complex networks of weighted data points that form the implementation. The data used in training is where the functionality is ultimately defined, and that is where you will find your issues and bugs.