InfoQ Homepage Distributed Systems Content on InfoQ
-
Go Language at 13 Years: Ecosystem, Evolution, and Future in Conversation with Steve Francia
Go was started more than a decade ago in the Engineering department at Google. It was designed with the purpose of providing an easy-to-learn programming language that would allow to develop Google's systems at the next level. In the past decade, the language became more and more stable, currently being used for implementing some of the most popular tools on the web (Kubernetes, Terraform etc.).
-
InfoQ 2020 Recap, Editor Recommendations, and Best Content of the Year
As 2020 is coming to an end, we created this article listing some of the best posts published this year. This collection was hand-picked by nine InfoQ Editors recommending the greatest posts in their domain. It's a great piece to make sure you don't miss out on some of the InfoQ's best content.
-
Server-Side Wasm - Q&A with Michael Yuan, Second State CEO
WebAssembly can be used server-side to provide the performance required by use cases such as blockchains and edge AI services. Non-standard extensions may address those use cases today, possibly weakening WebAssembly portability benefits. The gathered experience may however provide important inputs to current and future WebAssembly proposals.
-
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.