Data modeling with DynamoDB
DynamoDB is a truly unique and powerful database. It provides a predictable low latency, a vast array of features, tight integration with other AWS services and almost no operational load. The only problem is that its data model can seem...
Should you use DynamoDB?
This article provides a general overview of DynamoDB, shows how to structure data, and presents some advanced features of this technology.
Guide to NoSQL for Software Developers
A short guide to NoSQL databases that explains what NoSQL databases for, why are they so different from SQL databases and how to use them.
Sending additional data to and from Flink cluster
In the first part of the article, I'll describe how to send configuration data to our Flink cluster. In the second part of the article, I will describe a non-trivial way of sending data back from a Flink cluster.
Four ways to optimize your Flink applications
Apache Flink provides many ways to tweak its execution. Here I'll show four different ways to improve the performance of your Flink applications.
Getting started with stream processing using Apache Flink
Apache Flink is taking the world of Big Data by storm. Learn how to start develop complex stream processing algorithms using it.
Getting started with batch processing using Apache Flink
Apache Flink is the next big thing in Big Data and has excellent support for both batch and stream processing. Learn how to start develop batch processing algorithms using it.
Apache Flink vs. Apache Spark
If you look at this image with a list of Big Data tools it may seem that all possible niches in this field are already occupied. With so much competition it should be very tough to come up with a...
Java’s Synchronized Keyword in Three Minutes
The synchronized keyword is a common building block in concurrent Java applications. Learn how to use it to avoid race conditions.
The Dangers of Race Conditions in Five Minutes
A race condition occurs when multiple threads mutate shared state such that the outcome depends on how exactly the threads' operations interleave.
Java Thread Class in Five Minutes
Threads are Java's basic abstraction for running code in parallel. Learn how to use the Thread class to launch, finish, and wait for threads.
Beyond POJOs – Ten More Ways to Reduce Boilerplate with Lombok
How to use Lombok to reduce Java boilerplate in logging, null checks, variable definitions, concurrent code, exception handling, laziness, and more.