July 29, 2015

Integration Frameworks: How Everything Works Together

Due to the diversity of this topic this will be the first post of a series. As soon as the other posts are available, they will be linked here.

These are the future topics to be covered:
  1. Integration Frameworks: general introduction and presentation of the basic concepts.
  2. Apache Camel: core concepts.
  3. Error Handling: production-ready error handling can be hard to master. We will provide solutions and concepts that are already live and have proven successful.
  4. Writing Custom Camel Components: sometimes there are use cases that are not covered by standard components. Custom Camel Components can be a solution that integrates seamlessly with the existing framework but still fits new requirements.
These topics, however, may still change and if you have any suggestions for topics that we should cover, feel free to contact us at: rene.schakmann@willhaben.at

July 22, 2015

Geo Clustering 3,000,000 Points On The Fly: A Brief HOW TO

Why Clustering?

Showing a lot of markers on a map looks very messy. Markers may start to overlap and the user experience is beginning to suffer. That problem is solved by using clustering: combining markers that are close to each other and displaying a single marker containing the number of markers it represents. 

Source: http://goo.gl/V9JdU5
This can be done on the client side or on the server side. Client-side clustering has three major problems:

July 21, 2015

Providing 20,000 Autocomplete Suggestions per Second: A Brief HOW TO

Implementing a feature like autocomplete may seem trivial at first glance. But as requirements are specified in more detail, it clearly becomes a bigger technical challenge. When you have to consider non-functional requirements (such as latency and scalability) for a website like willhaben.at that receives more than a billion page impression per month, things are a little bit trickier.

The term autocomplete is used to describe a range of different features and its actual requirements heavily depend on the overall context and the goal that should be achieved with this feature. Normally, what we mean by "autocomplete" is to complete a word the user is currently typing by providing him with a range of possible words that match the input string. But that's only one of the many ways in which this feature works.

So let's have a closer look at some particularly useful implementations of autocomplete solutions.