InfoQ Homepage Development Content on InfoQ
-
Distributed Tracing: Exploring the Past, Present and Future with Dapper, Zipkin and LightStep [x]PM
Distributing tracing is increasingly seen as an essential component for observing distributed systems and microservice applications. This article provides an introduction to and overview of this technique, and includes: an exploration of Google’s Dapper request tracing paper; the Zipkin and OpenTracing projects; and the new LightStep [x]PM tracing platform.
-
Designing, Implementing, and Using Reactive APIs
Reactive programming is a hot topic in the Java world. Whether you want to leverage non-blocking APIs, manage the latency introduced by the explosion of microservices, or simply utilize computing resources more efficiently, it's time to look at reactive as a viable programming model. In this article, we offer some opinions on how you should design, implement and use reactive APIs.
-
Virtual Panel: Succeeding with Event Sourcing
Why should you use event sourcing as a data storage and retrieval technique? What are the architectural implications? When should you use platforms versus frameworks to satisfy requirements? InfoQ interviewed two experts to learn more.
-
When Streams Fail: Implementing a Resilient Apache Kafka Cluster at Goldman Sachs
At QCon New York, Anton Gorshkov presented “When Streams Fail: Kafka Off the Shore”. The talk shared insight into how a platform team at a large financial institution design and operate shared internal messaging clusters like Apache Kafka, and also how they plan for, and resolve, the inevitable failure that occurs.
-
How Cryptocurrencies are Changing the IT Industry
Blockchain has not only become the core mechanism of many cryptocurrencies, it has called a wider attention because its potential for use extends far beyond the confines of cryptocurrencies. InfoQ has spoken to Blockchain developer Eugene Kyselov to learn about how Blockchain-related technologies are changing the world and the IT iindustry.
-
Building a CI System with Java 9 Modules and Vert.x Microservices
Java 9 and Vert.x microservices are compatible for building applications, as showcased by this example application that implements a minimal, but working CI system.
-
The Kubernetes Effect
To successfully design for, implement, and run applications on Kubernetes requires knowledge of primitives, and awareness of design principles and practices. This article provides an overview of Kubernetes and guidance for how to best use it.
-
Is Project Treble the Answer to Android Updates?
While iOS updates can be usually installed on all supported devices the day they are released, Android updates are annoyingly slow to roll out. As a result, fragmentation has been a major problem in the Android world for several years. Project Treble is an attempt to remedy this entire set of problems. This article will introduce its architecture and discuss its chances of success.
-
JPA 2.2 Brings Some Highly Anticipated Changes
Released this past summer, JPA 2.2 delivered some frequently requested enhancements, especially by providing better alignment with Java 8 features, such as support for the Date and Time API and the retrieval of a query result as a Stream.
-
Is Batch ETL Dead, and is Apache Kafka the Future of Data Processing?
At QCon San Francisco 2016, Neha Narkhede presented “ETL is Dead; Long Live Streams”, and discussed the changing landscape of enterprise data processing. A core premise of the talk was that the open source Apache Kafka streaming platform can provide a flexible and uniform framework that supports modern requirements for data transformation and processing.
-
Demystifying DynamoDB Streams: An Introduction to Ordering, Deduplication and Checkpointing
Akshat Vig and Khawaja Shams explore the implementation of Amazon DynamoDB Streams, and argue that understanding ordering, de-duplication and checkpointing are vital for building distributed systems.
-
Five Things Every Developer Should Know about Software Architecture
Given the distributed nature of the software systems we’re now building, and the distributed nature of the teams building them, it's more important than ever to understand the basics of software architecture. As a short introduction to the topic and to debunk some myths, here are five things that every software developer should know about software architecture.