InfoQ Homepage Architecture & Design Content on InfoQ
-
Real-Time Data Processing Using Redis Streams and Apache Spark Structured Streaming
Structured Streaming, introduced with Apache Spark 2.0, delivers a SQL-like interface for streaming data. Redis Streams enables Redis to consume, hold and distribute streaming data between multiple producers and consumers. In this article, author Roshan Kumar walks us through how to process streaming data in real time using Redis and Apache Spark Streaming technologies.
-
The Potential for Using a Service Mesh for Event-Driven Messaging
In this article, we discuss one of the most challenging and unexplored areas in service mesh architecture; supporting event-driven messaging. There are two main architectural patterns that we discuss here: the protocol proxy sidecar, and the HTTP bridge sidecar. Regardless of the pattern that is used, the sidecar can facilitate features such as observability, throttling, tracing etc.
-
API Gateways and Service Meshes: Opening the Door to Application Modernisation
Modernising applications by decoupling them from the underlying infrastructure on which they are running can enable innovation, reduce costs, and improve security. An API Gateway can decouple applications from external consumers, and a service mesh decouples applications from internal consumers.
-
Q&A on the Docker on Windows – Second Edition
InfoQ interviewed Elton Stoneman about the significant changes in the 2nd edition of Docker on Windows, typical use-cases, benefits of CI/CD Pipelines, containerization, guidance, operations, and collaboration between Microsoft and Docker.
-
The Data Science Mindset: Six Principles to Build Healthy Data-Driven Organizations
In this article, business and technical leaders will learn methods to assess whether their organization is data-driven and benchmark its data science maturity. They will learn how to use the Healthy Data Science Organization Framework to nurture a data science mindset within the organization.
-
Using TypeScript with the MySQL Database
TypeScript has emerged as a powerful environment for authoring web applications, providing significant improvements over standard JavaScript while remaining consistent with the language. In this article we'll explore in depth the details necessary to use TypeScript with Node.js, MySQL, and TypeORM to create a powerful solution for managing database access with server-side TypeScript.
-
Service Virtualization Meets Java: Hoverfly Tutorial
Service virtualization is a technique used to simulate the behavior of dependencies of service during automated testing. This article explores this topic, and includes a tutorial using Hoverfly Java.
-
The Many Flavors of “Low-Code”
While the low-code hype often tells how "citizen developers" can create enterprise applications without the need to code, these platforms can serve an important role for professional developers.
-
Robust Engineering: User Interfaces You Can Trust with State Machines
Industrial-strength modelling techniques used in safety-critical domains can be leveraged for the specification and implementation of user interfaces. This article explains how state machine modelling may lead to robust, testable and maintainable user interfaces.
-
To Multicluster, or Not to Multicluster: Inter-Cluster Communication Using a Service Mesh
Communication within Kubernetes clusters is a solved issue, but communication across clusters requires more design and operational overhead. Before deciding on whether to implement multicluster support, you should understand your communication use case.
-
Key Takeaway Points and Lessons Learned from QCon London 2019
QCon returned to London this past March for its thirteenth year in the city, attracting 1,500 senior developers, architects, and team leads.
-
Linkerd v2: How Lessons from Production Adoption Resulted in a Rewrite of the Service Mesh
Linkerd 2.0 introduced a substantial rewrite of the widely adopted service mesh, using a split between Go and Rust. In this article, we discuss the lessons learned in the "cauldron of production adoption", and how those lessons became the basis of Linkerd 2.x’s philosophy, design, and implementation.