InfoQ Homepage Architecture & Design Content on InfoQ
-
Obscuring Complexity
One of the most important things that software architects do is manage the complexity of their systems in order to mitigate release disruption while maintaining sufficient feature velocity. When we cannot reduce complexity, we try to hide or shift it. Software architects tend to manage that complexity with the time-honored strategies covered in this article.
-
Using OpenAPI to Build Smart APIs for Dumb Machines
This article discusses how to build, manage and maintain APIs with OpenAPI, including some of the most notable features in v. 3.0.
-
How to Use Open Source Prometheus to Monitor Applications at Scale
In this article, the author discusses how to collect metrics and achieve anomaly detection from streaming data using Prometheus, Apache Kafka and Apache Cassandra technologies.
-
How Do We Think about Transactions in (Cloud) Messaging Systems? An Interview with Udi Dahan.
Do today's cloud-based messaging services have different transactional support than those that preceded it? If so, what are the implications? In this interview with distributed systems expert Udi Dahan, we explores the question.
-
Correctness vs Change: Which Matters More?
In ongoing software development, our core work is changing code. Jessica Kerr argues that by building changeable software on top of existing, well-understood components, and by improving delivery automations, teams will get better at their core work of delivering value and "changing reality".
-
How We Reduced Our React App’s Load Time by 60%
React handles UI updates efficiently but it does not magically make your web app faster. As our application grew in size, we started noticing some drawbacks of our setup. Although we knew how React worked and how Redux manages state, our application had bloated in size. We started seeing application crashes and jank. It was time to drive down the technical debt and make performance improvements!
-
WebAssembly and Blazor: A Decades Old Problem Solved
A framework, named Blazor because it runs in the browser and leverages a templating system or "view engine" called Razor, enables the scenario .NET developers almost gave up on. It doesn't just allow developers to build client-side code with C#, but also allows developers to run existing .NET Standard DLLs in the browser without a plugin. Here's the story of WebAssembly and Blazor.
-
Towards a Unified, Standard API for Consolidating Service Meshes
Service mesh architectures enable a control and observability loop. At the moment, service mesh implementations vary in regard to API and technology, and this shows no signs of slowing down. Building on top of volatile APIs can be hazardous. Here we suggest to use a simplified, workflow-friendly API to shield organization platform code from specific service-mesh implementation details.
-
How to Mitigate the Pain of Getting and Giving Feedback
Companies that encourage open and honest feedback do better than companies that do not. Nonetheless, giving feedback is difficult because social and physical pain share some of the same neural circuitry. Hence, feedback can feel physically painful, as Sarah Hagan discusses in her 2018 QCon San Francisco talk . Hagan uses scientific research to demonstrate how to give feedback properly.
-
Application Integration for Microservices Architectures: A Service Mesh Is Not an ESB
A service mesh is only meant to be used as infrastructure for communication between services, and developers should not be building any business logic inside the service mesh. Other frameworks and libraries can be used to implement cloud native enterprise application integration patterns.
-
Architecture with 800 of My Closest Friends: The Evolution of Comcast’s Architecture Guild
Comcast has cultivated an Architecture Guild, with the goal of "threading the needle" between obtaining advantageous critical mass around certain common technologies without undermining individual teams' agency. The Architecture Guild is a grassroots framework that has been used to cut across organizational boundaries to identify solid, workable, default recommendations.
-
Real-Time Data Processing Using Redis Streams and Apache Spark Structured Streaming
Structured Streaming, introduced with Apache Spark 2.0, delivers a SQL-like interface for streaming data. Redis Streams enables Redis to consume, hold and distribute streaming data between multiple producers and consumers. In this article, author Roshan Kumar walks us through how to process streaming data in real time using Redis and Apache Spark Streaming technologies.