BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Java Content on InfoQ

  • Using Serverless WebSockets to Enable Real-Time Messaging

    This article reviews some of the most common live-user experiences with examples, discusses event-driven architectures to support real-time updates, and introduces common technology choices.

  • Java Champion Josh Long on Spring Framework 6 and Spring Boot 3

    Microservices show where Java lags behind other languages. Reactive programming provides a concise DSL to express the movement of state and to write concurrent, multithreaded code with better scaling. Developing in Spring Boot works well even without special tooling support. Josh Long is excited about Project Loom, Java optimization in Project Leyden, and Foreign-Function access in Project Panama.

  • Shift Left Approach for API Standardization

    Descriptions about API standardization using common tools like OpenAPI and Zally, to simplify re-use across microservices between teams. Reviews against best practices such as an API stylebook and guidelines from Microsoft and Google.

  • Moving Kafka and Debezium to Kubernetes Using Strimzi - the GitOps Way

    Deploying an Apache Kafka cluster to a Kubernetes is not an easy task. There are a lot of pieces to configure like the zookeeper, the Kafka cluster, topics, and users. Strimzi is a Kubernetes controller making the deployment process of Kafka a child game. Moreover, Strimzi lets you manage Kafka using GitOps methodology as everything is executed using a Kubernetes YAML file.

  • Virtual Threads: New Foundations for High-Scale Java Applications

    Virtual threads are a lightweight implementation of Java threads, delivered as a preview feature in Java 19.  They dramatically reduce the effort of writing, maintaining, and observing high-throughput concurrent applications. Virtual threads breathe new life into the familiar thread-per-request style of programming, allowing it to scale with near-optimal hardware utilization.

  • Java Champion James Ward on the State of Java and JVM Languages

    James Ward is a Java Champion and Google’s Kotlin product manager. In a podcast, Ward agreed that “people are still trapped in the Java world” and called default mutability in Java the “trillion-dollar mistake”. In this interview, he speaks about the state of Java, JVM languages, mutability, and functional programming.

  • How to Speed up Large Collections Processing in Java

    A review on Java performance for many objects using Java Collections or alternative collections, with the impact of serial vs. parallel streams. For some streaming data sets, parallel processing can be slower than the default.

  • 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.

  • Why DevOps Governance is Crucial to Enable Developer Velocity

    The application environment should be managed centrally by the DevOps team. This allows them to better track modifications and changes which would then be swift and transparent to developer teams.

  • 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.

  • The Compounding (Business) Value of Composable Ecosystems

    Being “free” and open source doesn’t hinder the value of these projects to businesses and end users; rather it unlocks it. The composability of open source ecosystems allows the innovation and value of the whole ecosystem to compound on itself.

BT