InfoQ Homepage Distributed Systems Content on InfoQ
-
Resilience in Deep Systems
Deep systems, with multiple layers of microservices, have special challenges, and handling them requires the right mindset and tools.
-
State at the Edge: an Interview with Peter Bourgon
Building upon topics in his talk at QCon London, Peter Bourgon answers questions about edge computing, distributed data, and the complexity of synchronization.
-
Edge Computing and Flow Evolution
Edge computing echoes science from the field of complex adaptive systems that explains scaling patterns. Understand this science to make better decisions about what to run "on the edge."
-
Graph Knowledge Base for Stateful Cloud-Native Applications
The lack of support for stateful cloud-native application behavior is a roadblock to many cloud use-cases. This article looks at graph knowledge-based systems which offer one approach to the design of next-generation platforms.
-
How to Avoid Cascading Failures in Distributed Systems
Cascading failures are failures that involve some kind of feedback mechanism. In distributed software systems they generally involve a feedback loop where some event causes either a reduction in capacity, an increase in latency, or a spike of errors. Laura Nolan explores them using public accounts of real production incidents.
-
Using Docker Application Packages to Deliver Apps across Teams
In this article, we will look at how the CNAB packaging format provides application providers and developers with a way of installing a multi-component application into a distributed computing environment, supporting many executable units, and makes it easy to deliver apps across teams, organizations and marketplaces.
-
Towards Successful Resilient Software Design
In this article, Uwe Friedrichsen explains the “why” and “what” of resilient software design, discusses the challenges he has met most often in recent years, and shares his thoughts on how to implement resilient software design in your organisation.
-
Modeling Uncertainty with Reactive DDD
Vaughn Vernon has written several books on DDD and reactive messaging patterns, and has found that the nature of distributed systems means you must deal with uncertainty. How to respond to a missing message, or a message that is received twice, should be a business decision, and therefore must be part of the domain model.
-
How Contract Tests Improve the Quality of Your Distributed Systems
Catching bugs at the end of a development cycle is costly, but how do you incrementally test complex distributed systems? In this article, Marcin Grzejszczak looks at an integration testing approach for communication between components. He reviews contract testing, and Spring Cloud Contract, as one solution.
-
A Roadmap to the Programmable World
The emergence of millions of remotely programmable devices in our surroundings will pose significant challenges for software developers. This article proposes a roadmap from today’s cloud-centric, data-centric Internet of Things systems to the Programmable World highlights those challenges that haven’t received enough attention yet.
-
From Alibaba to Apache: RocketMQ’s Past, Present, and Future
Feng Jia and Wang Xiaorui share the core distributed systems principals behind RocketMQ, Alibaba's distributed messaging and data streaming platform now open sourced through the Apache Foundation.
-
Why and How to Test Logging
Logging and aggregation are crucial tools for today's complex, distributed systems. They provide rich insights which keep time to recover short. We must therefore make sure we test logging adequately.