Articles tagged with
open source
12 Feb 2024
This story shows how we strive to fix issues reported by our customers regarding inconsistent listing views on our e-commerce platform.
We will use a top-down manner to guide you through our story. At the beginning, we highlight the challenges faced by our customers, followed by presenting
basic information on how views are personalized on our web application. We then delve deeper into our internal architecture, aiming to clarify how
it supports High Availability (HA) by using two data centers. Finally, we advertise a little Couchbase,
distributed NoSQL database, and explain why it is an excellent storage solution for such an architecture.
14 Dec 2023
This article is a form of a public postmortem in which we would like to share our bumpy way of revealing the cause of a mysterious performance problem.
Besides unveiling part of our technical stack based on open-source solutions, we also show how some false assumptions made such a bug triage process much
harder.
Besides all NOT TO DOs, you can find some exciting information about performance hunting and reproducing performance issues on a small scale.
As a perk, we prepared a repository where you can reproduce the problem and make yourself familiar with tools
that allowed us to confirm the cause.
The last part (lessons learned) is the most valuable if you prefer to learn from the mistakes of others.
14 Sep 2023
MongoDB is the most popular database used at Allegro. We have hundreds of MongoDB databases running on our on—premise servers.
In 2022 we decided that we need to migrate all our MongoDB databases
from existing shared clusters to new MongoDB clusters hosted on Kubernetes pods with separated resources.
To perform the migration of all databases we needed a tool for transfering all the data and keeping consistency between old and new databases.
That’s how mongo-migration-stream project was born.
05 Apr 2023
Hermes is a distributed publish-subscribe
message broker that we use at Allegro to facilitate asynchronous communication between our
microservices. As our usage of Hermes has grown over time, we faced a challenge in effectively distributing the
load it handles to optimize resource utilization. In this blog post, we will present the implementation of a dynamic
workload balancing algorithm that we developed to address this challenge. We will describe the approach we took, the
lessons we learned along the way, and the results we achieved.
07 May 2020
This year Allegro.pl turns 21. The company, while serving millions of Poles in their
online shopping, has taken part in many technological advances. Breaking the monolith,
utilising public cloud offerings, machine learning, you name it. Even though many technologies
we use might seem as just following the hype, their adoption is backed by solid reasoning.
Let me tell you the story of a project I’ve had the privilege of working on.
22 Oct 2018
Two years ago at Allegro we used to have a very typical Big Data technology stack. The architecture was based
on a Hadoop cluster and we would query it with plain Hive
queries, Spark jobs and Jupyter notebooks. Over those last two
years we have transformed it into a more efficient and easy to use
OLAP platform.
21 Apr 2017
In our services ecosystem it’s usually the case that services can handle
a limited amount of requests per second.
We show how we introduced a new algorithm for our publish-subscribe queue system.
The road to production deployment highlights some key distributed systems’ takeaways we’d like to discuss.
30 Sep 2016
In everyday work programmers are facing various problems. We would like to focus on two of them: big systems
with non-blocking API and specific business needs that can be solved using Expression Language. Hold tight!
02 Sep 2016
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.
24 Jun 2015
At Allegro we use many open-source tools that support our work.
Sometimes we are not able to find what we want and this is
a perfect moment to fill the gap and to
share with the community. We are proud to announce
Camus Compressor — a tool
that merges files created by Camus
on HDFS and saves
them in a compressed format.
08 May 2015
At Allegro we use many open-source tools that support our work. Sometimes we are not able to find what we want and
this is a perfect moment to fill the gap and to share with the community. We are proud to announce an
initial release of Elasticsearch reindex tool — a tool that
provides an easy way to rebuild indexes in elasticsearch.
10 Apr 2015
Nowadays, Spring Boot gets more and more popular as it simplifies creating standalone, production-grade Spring based
applications. It offers e.g. auto-configuration support for most of the available Java-based template engines
such as Velocity, Thymeleaf, etc. Today, we would like to publish the new Spring Boot starter that supports
auto-configuration of other popular template engine we have recently got used to —
Handlebars. Hopefully you might find this little piece of code useful.
03 Apr 2015
At Allegro we use many open-source tools that support our work. Sometimes we are not able to find what we want and this is a perfect moment to fill the gap and
to share with the community. We are proud to announce an initial release of Tradukisto — a small Java library created to
convert numbers to their word representations.
24 Sep 2014
In the good old days of Maven releasing projects was straightforward. Everyone knew and used
maven-release-plugin,
a plugin that behind simple facade did huge amounts of work. In Gradle times things started to get complicated. In
exchange for greater flexibility we gave up good old, maybe a bit rusty tools that were part of our developer kits
for years. Now we try to find new ones. Most of teams in Allegro have decided to migrate their projects from Maven to Gradle
and we, too, are searching for perfect tools to do our job (and builds).