InfoQ Homepage Architecture Content on InfoQ
-
Building Reliable Software Systems with Chaos Engineering
Advances in large-scale, distributed software systems are changing the game for software engineering. As an industry, we are quick to adopt practices that improve flexibility and improve feature velocity. If we can move quickly, can we do so without breaking things? Chaos Engineering practices can be used to navigate complexity and build more reliable systems.
-
Shifting to Continuous Documentation as a New Approach for Code Knowledge
Documentation is an important part of code development. However, documentation quickly becomes stale as code changes. Continuous documentation focuses on three principles: continuously verifying documents, documenting when it is most needed, and coupling the documentation to the code.
-
Microsoft's Low-Code Strategy Paints a Target on UIPath and the Other RPA Companies
Microsoft is investing big in the low code space and has put together a collection of products that is hard for other companies to match, capped recently by the announcement of PowerFX. The target in their sights is the Robotic Process Automation (RPA) companies such as UIPath, Automation Anywhere and Blue Prism who are closing big deals with big enterprises.
-
Evolutionary Architecture from an Organizational Perspective
Creating an architecture that can evolve over time is not simply a technical challenge, and requires collaboration with non-technical people in an organization to ensure the software adapts as needed.
-
Case Study: a Decade of Microservices at a Financial Firm
Microservices are the hot new architectural pattern, but the problem with “hot” and “new” is that it can take years for the real costs of an architectural pattern to be revealed. Fortunately, the pattern isn’t new, just the name is. So, we can learn from companies that have been doing this for a decade or more.
-
Keeping Technology Change Human
When we are at the forefront of so much change, it's easy to forget that other people around us find change more challenging. This article is a reminder to look beyond the code and processes, to consider how tech team actions can affect our users in emotional ways. It seeks to establish a few ways of thinking to help bring others along with us when working through technology change.
-
Containers Are Contagious and Often Misused
Let’s get something straight right right from the start— this article is not to argue that containers are bad; containers are certainly one of many great options developers have in their hands today. This article is also not scoped at the pros/cons of containers; my intent is just to present the developers and dev leads with some considerations around containers.
-
Local-First Cooperation: Autonomy at the Edge, Secured by Crypto, 100% Available
Why do two local devices need the cloud to be able to communicate? Shouldn't we be able to enable robust cooperation between nearby computing devices? This idea is the realm of local-first cooperation. In what follows, the author discusses the technologies used to make it function and a few places where work is still needed.
-
Can We Trust the Cloud Not to Fail?
I will start with the theory behind failure detection, and then review a couple of real-world examples of how the mechanism works in a real cloud - on Azure. Even though this article includes real-world applications of failure detection within Azure, the same notions could also apply to GCP, AWS, or any other distributed system.
-
Compiled, Typed, Ruby-Inspired Crystal Language is Ready for Production - Q&A with Beta Ziliani
The Crystal language is ready for production, 12 years after inception. Crystal is compiled for performance, typed for safety, and Ruby-like for productivity. Due to the strong type inference, developers need only sparse type annotations. We interviewed the head of the Crystal team on the language tradeoffs, the present features and the language roadmap.
-
Continuous Learning as a Tool for Adaptation
The fifth and capstone article in a series on how software companies adapted and continue to adapt to enhance their resilience explores key themes with a special view on the practicality of organizational resilience. It also provides practical guidance to engineering leadership and recommendations on how to create this investment.
-
Running Axon Server in a Virtual Machine
In this series, we’ve been looking at running Axon Server locally, in Docker, and Kubernetes. What happens if we use a VM as a platform? Naturally, we need to do more work to get everything set up correctly, because instead of sharing a part of the Operating System, we now have to consider everything from the machine and upwards.