InfoQ Homepage Patterns Content on InfoQ
-
Application Integration for Microservices Architectures: A Service Mesh Is Not an ESB
A service mesh is only meant to be used as infrastructure for communication between services, and developers should not be building any business logic inside the service mesh. Other frameworks and libraries can be used to implement cloud native enterprise application integration patterns.
-
Agile Anti-Patterns: A Systems Thinking Approach
Agile anti-patterns can disguise themselves as "solutions" or "workarounds". This article discusses the importance of recognising and classifying a new generation of agile anti-pattern with a systems thinking approach. It shows how to create and promote a shared language using value streams as an effective means of creating a systems thinking culture amongst agile teams and the wider business.
-
Scrum@Scale: An Interview with Agile Manifesto Co-Author and Scrum Co-Founder Jeff Sutherland
Jeff Sutherland founded Scrum@Scale to help organizations address critical scaling challenges. Leaders form an Executive Action Team and are responsible for addressing organizational impediments.
-
How the TOGAF Standard Serves Enterprise Architecture
Any architect working with large enterprise systems has probably looked for guidance on how to manage the complexity and communicate with various stakeholders. This introductory overview of the TOGAF standard explains the structure of the framework, as well as discusses the benefits of using enterprise architecture to manage complex systems.
-
Refactoring to a Deeper Model
Paul Rayner uses a case study to demonstrate how refactoring your code can lead to a deeper understanding of your domain model. Through common code refactorings, combined with the implementation of patterns, the codebase became more cohesive and easier to reason about, reducing the time to perform some common tasks from weeks or months to just hours.
-
Models and Their Interfaces in C# API Design
Traditional MVC, MVP, MVVM, Web MVC; the common element in every UI pattern is the Model. And while there are many articles discussing the view, controllers, and presenters in these architectures, almost no thought is given to the models. In this article we’ll look at the model itself and the .NET interfaces that they implement.
-
Defining Cloud Native: A Panel Discussion
What is "cloud-native", why should you care, and how can your team adopt this way of delivering software? InfoQ gathered three industry experts to debate the topic.
-
Q&A on The Rise and Fall of Software Recipes
Darius Blasband has written a book which challenges the conventional wisdom of software engineering: he protests against the adoption of recipes and standards-based approaches and rails against the status-quo. He calls himself a codeaholic who advocates for careful consideration of the specific context and the use of domain specific languages wherever possible.
-
Advanced Use Cases for the Repository Pattern in .NET
In our previous article, we looked at the basic patterns needed to implement a repository. In many cases these patterns were such a thin layer around the underlying data access technology they were essentially unnecessary. However, once you have a repository in place, many new opportunities become available.
-
Implementation Strategies for the Repository Pattern with Entity Framework, Dapper, and Chain
This article will focus on the basic functionality that one would find in a typical repository created with .NET. We’ll look at both general functionality and how that functionality would be implemented using three different styles of ORM: Entity Framework, Dapper, and Tortuga Chain.
-
Two Mistakes You Need to Avoid When Integrating Services
With SOA, businesses moved from monolithic applications to heterogeneous designs by decomposing functionality into services. However, architects must be careful when integrating services. Often enterprises assume adopting patterns like ESB can help. Unfortunately, there are hidden challenges with these patterns. The danger is they go unnoticed during development but surface when a system is live.
-
Continuous Delivery Coding Patterns: Latent-to-Live Code & Forward Compatible Interim Versions
This article describes two novel practices for continuous delivery: Latent-to-live code pattern and Forward compatible interim versions. You can use these practices to simultaneously increase speed and reliability of software development and reduce risks. These practices are built on top of two other essential continuous delivery practices: trunk-based-development and feature toggles.