InfoQ Homepage Microservices Content on InfoQ
-
Adoption of Cloud Native Architecture, Part 3: Service Orchestration and Service Mesh
This part 3 article in Cloud Native Architecture Adoption series, explores service interaction in a microservices based architecture, typical challenges we experience in distributed systems without proper governance, and how patterns like service orchestration and service mesh can help address those challenges.
-
Pitfalls and Patterns in Microservice Dependency Management
Silvia Esparrachiari shares stories on how a small change can impact a system, discussing the importance of having a broad view of a system to better understand how a change can impact a system. She presents three different scenarios that changed related to dependency management in an environment of microservices, all based on situations that she encountered while working at Google.
-
Consistency, Coupling, and Complexity at the Edge
Successful use of a microservices architecture requires maintaining a clear separation of concerns in the various layers and by employing design principles best suited to each layer. While RESTful API design has become the standard for microservices, it can cause problems at the UI layer. Alternatives such as the Backend-for-Frontend pattern using GraphQL can provide better separation of concerns.
-
Turning Microservices Inside-Out
Turning microservices inside-out means moving past a single, request/response API to designing microservices with an inbound API for queries and commands, an outbound APIs to emit events, and a meta API to describe them both. A database can be supplemented with Apache Kafka via a connecting tissue such as Debezium.
-
GitHub’s Journey from Monolith to Microservices
This article explores GitHub's recent journey towards a microservices architecture. It takes a deeper look at GitHub’s historical and current state, goes over some internal and external factors, and discusses practical consideration points in how Github tackled their migration, including key concepts and best practices of implementing microservices architecture.
-
Implementing Pipeline Microservicilities with Tekton
Microservicilities is a list of cross-cutting concerns that a service must implement apart from the business logic. These concerns include invocation, elasticity and resiliency, among others. This article describes how a service mesh such as Istio may be used to implement these concerns.
-
Implementing Microservicilites with Istio
Microservicilities is a list of cross-cutting concerns that a service must implement apart from the business logic. These concerns include invocation, elasticity and resiliency, among others. This article describes how a service mesh such as Istio may be used to implement these concerns.
-
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.
-
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.
-
Article Series: Building Microservices in Java
This article series will explore the state-of-the-art in building microservice-based architectures using the Java language. Alongside popular stalwarts, such as Spring Boot and Dropwizard, newer frameworks, such as Quarkus, Micronaut and Helidon, have been gaining momentum. These frameworks emerged after MicroProfile was introduced to the Java community in 2016.
-
Testing Quarkus Web Applications: Reactive Messaging, Kafka, and Testcontainers
Quarkus is a full-stack, Kubernetes-native Java framework that supports many coding styles, including reactive programming. Writing clean unit/component/integration tests for Quarkus applications when a reactive approach is used is vitally important. Here we demonstrate testing reactive code, reactive messaging, and full integration testing.
-
Serverless Functions for Microservices? Probably Yes, But Stay Flexible to Change
When designing cloud-native systems, it is important to accommodate freedom to change deployment strategy, from FaaS to containers or VMs, for potentially significant savings on cloud bills.