Latest tech post

  • Performance and Availability pitfalls in the Microservices Architecture — CQK Top 10

    High performance and availability are always hard to achieve, and microservice architecture is no exception. In the microservices world, every user request sent to a frontend application triggers a cascade of remote calls. The frontend application calls API facades, API facades ask backend services, backend services communicate with databases and even more backend services. Statistics work against you. Latencies add up but failure probabilities combine by multiplication. The more services are engaged in a flow, the more threats for performance and availability.

    read more

  • Thread pools — CQK Top 10

    This article is a part of CQK Top 10 series. Modern applications process their work in multiple thread pools. Knowing where they are and how to set them up correctly is crucial for making sure applications behave well in production. We observe that stability and peformance issues are often a result of mistakes in this area.

    read more

  • JVM Garbage Collection — CQK Top 10

    This article is a part of CQK Top 10 series. Automatic memory management in Java greatly simplifies programs and helps to avoid dangerous errors like reading from unallocated memory. However if configured improperly, it can become a performance bottleneck. Here are some of our configuration advices and anti-patterns to avoid.

    read more

  • Caching — CQK Top 10

    This article is a part of CQK Top 10 series. Many developers add cache to their application without measuring its performance impact. We are advising here that each application cache should have a very good reason to exists.

    read more

  • Are code reviews worth your time?

    Code reviews play an important role in how we develop software at Allegro. All code we developers write is reviewed by our peers. If you apply for a job with us, we may ask you to review a sample piece of code during your interview. A code review done right carries a lot of value, but if done wrong it can become a waste of time. In this article I will describe what I think makes a good code review, how reviews have evolved over time at the teams I worked with and what you can do in order to make code reviews worthwhile.

    read more

  • Allegro OpenSource — embedded-elasticsearch

    At Allegro we want to be sure that our software works as designed. That’s why tests are so important to us. In several projects we are using Elasticsearch. In order to make writing integration tests that uses Elasticsearch easier, we’ve created a little tool called embedded-elasticsearch. It sets up Elasticsearch instance that you need for your tests (including installation of plugins) and gives you full control of it.

    read more

At Allegro, we build and maintain some of the most distributed and scalable applications in Central Europe. This poses many challenges, starting with architecture and design, through the choice of technologies, code quality and performance tuning, and ending with deployment and devops. In this blog, our engineers share their experiences and write about some of the interesting things taking place at the company.