Traditional applications progress sequentially. This was ok for a certain time, multi-threading, concurrency and parallelism are hard to code right. With growing requirements to performance, large scale data and user base, application have to progress concurrently and even parallelize tasks. Using Akka for event distribution and processing enables applications to work on different tasks in parallel in a very simple and configurative way.

Read more ...

Central logging using logstash or Graylog is one of the most interesting topics for now. Software applications get more distributed, are partitioned into different components and are running on multiple servers. This causes the need of central logging. Central logging itself is nice. You don't have to collect log files from multiple servers anymore. But how do you correlate and track requests on different machines? How can you trace, which request in the frontend caused which error message in the backend?

Read more ...

Operating a Hadoop cluster means lots of daemons running on lots of machines. When it comes to the logs, and you're searching for something, it can get nasty, since you do not know, where to search.

Read more ...

I've released today logstash-gelf 1.2.0, I'll be available until this evening on Maven Central.

Read more ...

Stateless services are the easiest to scale out. Just add more machines without worrying about maintaining a state. Stateful applications are harder to scale. So are web applications with user front ends and sessions.

Read more ...

One of my recent projects uses Apache's XMLConfiguration in a very extensive way. Nearly everything is configured and stored as XML files. Commons Configuration is a very nice library, providing access to multiple configuration formats and automatic reloading. The other side of the library is, that it produces heavy CPU load.

Read more ...

Today I've released the patch 1.2.6 of logstash-gelf. This release contains a performance bugfix which caused an incident in the past. 

The java.util.logging hoghandler's publish method was synchronized. This caused stalling of different threads which ended up in a denial of service. Usually a restart of the application is sufficient to solve that problem, but that's only a temporary solution. Other implementations of logstash-gelf (Log4j, Log4j2 and Logback) are not affected.

Links

Any feedback is appreciated or create issues on GitHub.

Imagine you're talking about something today with your product owner or boss. It get's the highest priority for today, because it's cool or something. Tomorrow you're not done with it but have again a cool feature idea. Or a collegue of you. And guess what, it gain's again highest priority.

And what about the first topic? Forgotten again. Not having a mid-term or long-term plan can get a horror. Not having a product vision or a strategy for your product is even harder. Every day things can change, old stuff gets obsolete and there is no red thread what your system is and what it's not. How it behaves and how not. This causes uncertainty and the involved developers cannot be confident about their implementation. Always and ongoing discussions and changes of directions are the consequence. The whole product looks and works like a mixed litterbox which causes confused users and no one is happy with the application.

Don't become that team.

Since today logstash-gelf supports log4j2. The experimental support allows dynamic field since log4j2 provides a very flexible configuration.

Read more ...