InfoQ Homepage Architecture Content on InfoQ
-
The C4 Model for Software Architecture
Software architecture diagrams can be a very useful communication tool, but many teams have scaled back on the creation of diagrams, and when diagrams are created, they are often confusing and unclear. The C4 model consists of a hierarchical set of software architecture diagrams for context, containers, components, and code.
-
The SOA Journey: from Understanding Business to Agile Architecture
If your monolith is tightly coupled and not cohesive, you could split it in order for a business to be more agile. There are a lot of wrong ways that you can do that. They result in the same tightly coupled and non-cohesive monolith, but which is distributed across a network. This article examines how you can align your technical services and business-capabilities.
-
How BuzzFeed Migrated from a Perl Monolith to Go and Python Microservices
Starting in 2016 BuzzFeed began a re-architecture project moving from a single monolithic application written in Perl to a set of microservices. The main reason for the move was that the Perl application was proving hard to scale, essential given that buzzfeed.com alone serves about 7 billion page views/month.
-
Can People Trust the Automated Decisions Made by Algorithms?
The use of automated decision making is increasing. These algorithms can produce results that are incomprehensible, or socially undesirable. How can we determine the safety of algorithms in devices if we cannot understand them? Public fears about the inability to foresee adverse consequences has impeded technologies such as nuclear energy and genetically modified crops.
-
Istio and the Future of Service Meshes
A service mesh provides a transparent and language-independent way to flexibly and easily automate networking, security, and observation functions. This article examines the past, present and future of the Istio service mesh. The near-term goal is to launch Istio to 1.0, when the key features will all be in beta, including support for Hybrid environments.
-
Democratizing Stream Processing with Apache Kafka and KSQL - Part 1
In this article, author Michael Noll discusses the stream processing with KSQL, the streaming SQL engine for Apache Kafka. Topics covered include challenges of stateful stream processing and how KSQL addresses them, and how KSQL helps to bridge the world of streams and databases through streams and tables.
-
How Technology Is Impacting the Future of Work through Fragmentation
One of the side effects of technology’s evolution is that it fragments existing architectures and creates new structures in the process. AI and Blockchain are currently doing this, but this pattern has been seen before and will continue as tech evolves. According to Kary Bheemaiah, fragmentation is impacting the future of work; it’s a tech-lead reality to be observed and leveraged when possible.
-
Ballerina Tutorial: A Programming Language for Integration
Ballerina is a new programming language and platform whose objective is to make it easy to create resilient services that integrate and orchestrate across distributed endpoints. Ballerina’s design principles focus on baking integration concepts into a language, including a network-aware type system, sequence diagrammatic syntax, concurrency workers, being “DevOps ready”, and environment awareness.
-
Q&A on the Book Many Voices, One Song - Shared Power with Sociocracy
The book Many Voices, One Song - Shared Power with Sociocracy by Ted Rau and Jerry Koch-Gonzalez provides a collection of sociocratic tools and principles and stories about applying sociocracy. It can be used as a reference for implementing sociocracy in organizations to establish self-governance.
-
Advanced Architecture for ASP.NET Core Web API
This article looks into how ASP.NET Core makes it easy to build a modern web API. This enables an implementation that is easy to design, test, and maintain. By using the Ports and Adapter Pattern business logic can be decoupled from API frameworks and data access.
-
Ballerina Microservices Programming Language: Introducing the Latest Release and "Ballerina Central"
The tutorial demonstrates Ballerina, a new programming language and platform whose objective is to make it easy to create resilient services that integrate and orchestrate across distributed endpoints. Ballerina uses compile time abstractions for distributed system primitives that enable the compiler to generate artifacts like API gateways for deployment to Docker and Kubernetes.
-
Microservices and the Economics of Small Things
In this article Mark Burgess explores the process of "decentralizing intent" and the effect it has on the predictability of our systems including what we can know as we scale systems.