Debugging Reactive Code

Scala Days: 5 Techniques to Improve How You Debug Scala and Akka in Production

Unlike debugging during development stages, production debugging is focused on tracing back your application’s steps. If your system is not prepared for it in advance, there’s little you can do to understand what might have gone wrong. In development you have your IDE debugger, you can step into, step back, and pretty much travel in time with your application. When your code is deployed to production, these capabilities are lost and a new skill set is needed to achieve this level of insight into your application.

Continue Reading…

7 Java Monitoring Tools

What are some of the most useful monitoring tools for Java developers?

Monitoring is an essential function in production environments today. Errors and performance issues pop up all the time – not just during business hours – so good monitoring tools need to be active 24/7. There are a lot of tools out there that tackle this issue from different angles, so getting a sense of which ones to consider can be tough.

Today, I’m taking a look at 7 monitoring tools that are on the newer side or are worth considering as an alternative or addition to tools like New Relic and AppDynamics. The tools comprise a mix of open source and SaaS models, and each of them has their own specialty or lean, be it metrics, visualizations, or error tracking.

Continue Reading…

Facebook Infer - Java Static Analysis

How can you improve your Java development workflow with Facebook’s Infer?

If you keep in the loop with tech buzz (which I’m assuming you do if you’re reading this blog), you’ve likely heard about the new tool Facebook just released to the public: Infer. Since it came from Facebook, people are naturally curious, so I wanted to take a look at what the tool’s about and how it could play a role for Java developers.

Continue Reading…

Java 9 Duke

What are the most exciting features that are expected to be released in Java 9?

Don’t get distracted by the relative silence lately around Java 9. The JDK committers are hard at work preparing the next release, expected to be feature complete just a few months away on December 2015. After that, it will go through rigorous tests and bug fixes preparing it for general availability, which is scheduled for September 2016.

Today we have a pretty clear picture of the features we can expect in Java 9. If Java 8 could be described as the major release of lambdas, streams and API changes, then Java 9 is all about Jigsaw, extra utilities and changes under the hood. In this post we’ve gathered some of the features we believe are the most exciting ones that are targeting Java 9 – Apart from the usual suspect, project Jigsaw, which took on the mission of breaking down the JRE and bringing modularity to Java’s core components.

Continue Reading…


(Based on chapter 3 of “The Definitive Guide for Production Tools” – read the full chapter)

Being able to generate data about your app is crucial, but you also need to be able to understand it. That’s where visualization and metrics tools come in. These tools take (or are given) your data and provide you with key metrics and/or digestible visualizations of what’s happening.

The first decision (after deciding to use one of these tools at all), is between open source (we cover Graphite and ELK stack) and SaaS (we cover Keen IO, Librato, and DataDog) options. The downside to the SaaS ones is that you have to weave them into your code, which is essentially a big investment. Weaving them into your code creates a huge dependency, so if you get to high scale, you’re in trouble. The downside to open source tools is they require you to install and set them up yourself. This requires a lot of machines if you get to high scale that now require monitoring, which you don’t have with SaaS. Either way, the cost of changing tools in the visualization/metrics or log analyzer space is huge.

Continue Reading…

Scala Days Amsterdam

The slides behind some of the best talks at Scala Days

Scala Days Amsterdam has swept us with tons of awesome Scala content, we had a great time attending the talks and showcasing Takipi’s new reactive monitoring solution. There were a total of 55 different sessions around all things Scala and some of the slides have already started popping up. In this post, we’ve selected a few of them for your viewing pleasure.

Continue Reading…

Java Micro Frameworks

What are Java micro frameworks and why should you use them?

Every language has tradeoffs. With Java, the tradeoff for being a safe, rigorously tested, backwards compatible language is making some sacrifices around agility and streamlining. There’s undeniably some verbosity and bloating, however, the JVM is hugely appealing as a backend if you really want to dive into things or go to high scale. It’s powerful and has been tested in the harshest of environments. Java is widely used and strongly deployable for a reason, after all.

Not everyone is accepting the state of things as they are however. Several people have taken a stab at trying to find ways around the bloat of Java and still keep the power of the JVM. The first wave was around lightweight Java frameworks (a few of which we wrote about: Dropwizard vs. Springboot). These delivered lightweight, modern frameworks for Java and helped cut down development time. Now there’s a second wave that’s been recently hitting the scene. That wave is Java micro frameworks.

Continue Reading…

Scala Days Amsterdam

What are some of the most interesting sessions coming up in Scala Days Amsterdam?

Woah! Scala Days is sold out and we hope you had a chance to be one of the lucky ones with a ticket. This time around the conference takes place in Amsterdam and features 55 (!) different talks in 3 action packed days with 4 parallel tracks. To decide which sessions to attend, we turned to 9 of the speakers and asked: “If you could attend only one session, which session would it be?”. Well, apart from their own of course. And apart from the keynote. And the lunch breaks. And the drinks… Some didn’t follow the rules! But we let a few of those glitches slip.

Continue Reading…

Spark Monitoring

Taboola’s Spark monitoring architecture for handling 10B+ daily user events

They say unicorns don’t exist, but of course you know that’s not true — at least not in the tech world. When we looked to learn more about Spark monitoring, our first choice was one of these unicorns – Taboola. This post will give an inside view of how they serve 550 million unique monthly users and deliver 200 billion monthly content recommendations using Spark. Working at this scale means an error so small that it only happens 0.1% of the time can easily affect hundreds of thousands of users. So how do you deal with this kind of pressure? Which metrics do you need to follow? And what are the tools that you need to master? Thanks to Tal Sliwowicz, Taboola’s R&D director, for giving us an inside view of his cluster to answer these questions.

Continue Reading…

 Blog_ JSON (1)

Which JSON library for Java can parse JSON files the fastest?

JSON is the accepted standard these days for transmitting data between servers and web applications, but like many things we’ve accepted, it’s easy to take it for granted and not put much further thought into it. We often don’t think about the JSON libraries we use, but there are some differences between them. With that in mind, we ran a benchmark test to see how fast four of the most popular JSON libraries for Java parse different sizes of files. Today, we’re sharing those results with you guys.

JSON is often used to transport and parse big files. This is a scenario that’s common in data processing applications running in Hadoop or Spark clusters. Given the size of these files, you can be looking at significant differences in parsing speed between libraries.

Continue Reading…