InfoQ Homepage Architecture & Design Content on InfoQ
-
Creating a Secure Distributed Database Cluster Leveraging Your Existing Database Management System
The emergence of Big Data and data lakes doesn't necessarily mean the disappearance of the trusted relational database. The two can coexist, relational databases just need to adjust. For the transition we propose Database Plus, a new technology & concept applicable to any database, that answers these challenges and eliminates switching costs and vendor lock-in.
-
Debezium and Quarkus: Change Data Capture Patterns to Avoid Dual-Writes Problems
It’s common in microservices to write data in two places, a database and then send the content to another microservice. One approach to tackle this problem is dual writes, but you may lose data because of concurrent writes. Debezium is an open-source project for change data capture using the log scanner approach to avoid dual writes and communicate persisted data correctly between services.
-
Data Manipulation with Functional Programming and Queries in Ballerina
Ballerina has been designed as a data-oriented programming language and supports a functional programming coding style. The Ballerina query language is similar to SQL in the sense that a query expression is made up of clauses. The Ballerina “Table” data structure can be more effective than maps in representing indexed data collections.
-
Rules of Thumb & Traps When Approaching Tech Stack Decisions
At the MVP stage - do only the stuff you would do in a hackathon. Scalability and processes will become important once we have predictable revenue streams. Where are you generating your unique value proposition? Outsource all aspects of the tech solution which are not in a relationship with your competitive advantage. Follow a general tech directive but balance it with the team's autonomy.
-
Infrastructure as a Code—Why Drift Management Is Not Enough
The reality is that configuration drift will remain unavoidable for the foreseeable future. An EaaS solution, coupled with an IaC platform and good change management policies will help you prevent drift and shorten your development cycles.
-
AI, ML, and Data Engineering InfoQ Trends Report—August 2022
In this annual report, the InfoQ editors discuss the current state of AI, ML, and data engineering and what emerging trends you as a software engineer, architect, or data scientist should watch. We curate our discussions into a technology adoption curve with supporting commentary to help you understand how things are evolving.
-
Managing Kubernetes Secrets with the External Secrets Operator
Kubernetes doesn’t yet have the capabilities to manage the lifecycle of secrets, so sometimes we need external systems to manage this sensitive information. Once the amount of secret information we need to manage increases, we may need additional tools to simplify and better manage the process. In this article, we’ll take a detailed look at one of these tools, the External Secrets Operator.
-
Mobile Video-Conferencing Using Jitsi
In this article, we will look at alternatives for providing video meetings on mobile devices. We take Jitsi as a popular open source option, which provides Jitsi Meet, an ad-hoc video meetings service, and JaaS, a service platform for developers. Looking at user engagement data, we see there’s no "one size fits all" solution.
-
Architectural Frameworks, Patterns, and Tactics Are No Substitute for Making Your Own Decisions
Software frameworks greatly amplify a team’s productivity, but also make implicit decisions. The benefits and limitations must be understood because of the impact on the resulting system architecture.
-
Gatling vs JMeter - What to Use for Performance Testing
A performance tool with a graphical interface will probably be easier to use at the beginning, but the idea of a performance test as code is the future. Tests are readable and much easier to maintain. Many people are skeptical about Gatling because it requires learning a new programming language - Scala. However, Java is supported with the release of Gatling 3.7.
-
Kafka Streams and Quarkus: Real-Time Processing Events
Consuming Kafka messages is simple; you get them as long as they are produced, but nothing more. But if you need real-time processing of the data (filtering, joining, or manipulating events), just using the Kafka-consuming API might not be the best approach as the resulting code becomes complex. Kafka Streams and Quarkus are the perfect matches to start processing Kafka events in real-time.
-
Using GraphQL and Ballerina with Multiple Data Sources
The Ballerina programming language is well-suited to developing GraphQL applications, due to the network abstractions, network-aware type system, clear data representations, and visual diagrams. This article discusses the benefits of GraphQL and Ballerina, and walks through a sample application that retrieves data from a database and a 3rd-party API.