InfoQ Homepage Architecture & Design Content on InfoQ
-
A Minimum Viable Product Needs a Minimum Viable Architecture
Creating a Minimum Viable Architecture as part of an MVP helps teams to evaluate the technical viability and to provide a stable foundation for the product that can be adapted as the product evolves.
-
Adaptability by Agreement: Valuing Outcomes over Imposed Solutions
In the pursuit of agile at scale, the landscape is dominated by process-driven approaches which are broken. This article explores a solution-driven rollout approach, one that puts authentic agreement on outcomes before solutions. The principles on which it is based are also effective as leadership strategies, where frameworks are resources to draw upon as people find fitting solutions.
-
The What and Why of Programmable Proxies
A question which gets often asked is “What is a programmable proxy, and why do I need one?” This article tries to answer this question from different perspectives. We will start with a brief definition of what a proxy is, then discuss how proxies evolved, explaining what needs they responded to and what benefits they offered at each stage. Finally, we discuss several aspects of programmability.
-
Why You Should Care about Software Architecture
Software development teams have resisted "big upfront designs" in favor of architectural designs emerging from self-organizing teams, which can lead to a mindset that software architecture is not really that important. Greater awareness of the implicit decisions they are making, and forcing these decisions to be made explicitly, can help development teams make better, more informed decisions.
-
A Recipe to Migrate and Scale Monoliths in the Cloud
In this article, I want to present a simple cloud architecture that can allow an organization to take monolithic applications to the cloud incrementally without a dramatic change in the architecture. We will discuss the minimal requirements and basic components to take advantage of the scalability of the cloud.
-
Ballerina: a Data-Oriented Programming Language
Ballerina’s flexible type system brings the best of statically typed and dynamically typed languages in terms of safety, clarity, and speed of development. Ballerina treats data as a first-class citizen that can be created without extra ceremony, just like strings and numbers.
-
Getting Started to Quarkus Reactive Messaging with Apache Kafka
How data is processed/consumed nowadays is different from how it was once practiced. In the past, data was stored in a database and it was batch processed for analytics. Apache Kafka is a distributed event store and stream-processing platform for storing, consuming, and processing data streams in real-time. In this post, we’ll learn how to produce and consume data using Apache Kafka and Quarkus.
-
Design-First Approach to API Development: How to Implement and Why It Works
With the rapid growth of the API industry, developers and technology leaders alike need to know how to create a successful and scalable API program that will drive business value. Developers should consider prioritizing a design-first approach to building APIs which will ensure a positive experience for all stakeholders.
-
Exploring Architectural Concepts Building a Card Game
One of the things I missed during the pandemic were my friends, the possibility to meet them, discuss with them and, why not, play cards with them. So I decided to implement an app to play Scopone with my friends and, at the same time, test “in the code” some architectural concepts which had been intriguing me for some time.
-
Designing Secure Tenant Isolation in Python for Serverless Apps
Software as a Service (SaaS) has become a very common way to deliver software today. While providing the benefits of easy access to users without the overhead of having to manage the operations themselves, this flips the paradigm and places the responsibility on software providers for maintaining ironclad SLAs, as well as all of the security and data privacy requirements.
-
Software Architecture: It Might Not Be What You Think It Is
Software architecture is often a misunderstood idea. Unlike traditional architecture, where the design is separated from construction, in software how something is built influences what is built, and vice versa. Software architecture is about decisions, not structure. Architecting is a skill, and architect should not be a role.
-
The Top Three Priorities for Engineering Leaders in 2022 and beyond
For engineering leaders, the Great Resignation has made it clear that maintaining employee satisfaction should be a top priority in the coming year. In 2022 and beyond, engineering leaders need to invest in developing a strong engineering culture, using data-driven decision-making to lead their teams, and to prioritize people before performance.