PostgreSQL March Meetup in Berlin

Posted by ads on Monday, 2024-03-11
Posted in [Berlin][Events][Postgresql-News]

On March 5th, 2024, we had the PostgreSQL March Meetup in Berlin. Zalando hosted the Meetup in their Berlin Headquarter near the Mercedes-Benz Arena, close to the River Spree, and the Oberbaum Bridge.

PostgreSQL Meetup at Zalando Berlin office
PostgreSQL Meetup at Zalando Berlin office

It’s been a while since the PostgreSQL Meetups in Berlin have been at the Zalando office, 2019 to be exact. The new office at Valeska-Gert-Stra├če has more space and a better audio and video system, compared to the previous location in Mollstra├če.

Meetup Attendees
Meetup Attendees

As usual, the Meetup had two speakers: Ilya Kosmodemiansky from Data Egret, and Polina Bungina from Zalando.

Matthias Adler, the Team Lead Databases, gave a quick introduction and explained what Zalando is doing with databases. They have around 3000 database clusters on Kubernetes, and are the main developer for Spilo. Patroni was born in Zalando, and Zalando is still one of its major maintainers.

Matthias Adler, introducing Zalando
Matthias Adler, introducing Zalando

Ilya “hydrobiont” Kosmodemiansky: PostgreSQL Worst Practices

Ilya Kosmodemiansky: PostgreSQL Worst Practices
Ilya Kosmodemiansky: PostgreSQL Worst Practices

Ilya breaks PostgreSQL since the v7.x days, and has a collection of around 140 PostgreSQL Worst Practices. To top this off, he also until recently built the slides with LaTeX and Perl. The collection includes goodies like:

Try to create as many indexes as you can

Because why not, indexes consume no disk space, and don’t need shared_buffers.

Long running Transactions are liked by DBAs: they know you exist

That is one way to receive appreciation!

Another one:

Never use Foreign Keys!

Reminds me of MySQL

You can have very Diverse data inconsistencies when data is checked in the app.

Why use fancy relational database technologies like Foreign Keys, Primary Keys or Constraints when one can just pull all the data from tables and do checks in the application. Guaranteed to be slower!

Replication is Backup

Enhanced by me:

“Who needs data anyway”

And of course the GDPR is the perfect excuse to never delete data:

Big Data, because nobody likes small data!

Ilya also mentioned

100 GB of data in a TB size database

Which references heavily bloated tables. The size of the database can easily be several times the size of the actual data, and that’s easy to achieve if one turns off Autovacuum. But 100 GB - these are rookie numbers these days.

And I’m a bit disappointed that he not once mentioned ORMs.

All in all a very good talk, and every version he presents is different

You can find the slides here.

The slides are published under the “WPL” licence, aka: “Worst Practice License”. That means:

  • Take it!
  • Use it in production!
  • #blamemagnus


The favorite food for Meetups seems to be pizza, this Meetup is no exception. Unfortunately I forgot to take a picture of the tables, but it was nevertheless delicious!

Food and drinks were both provided by Zalando.

Polina Bungina: Peculiarities of logical decoding in PostgreSQL

Polina Bungina: Hazards of logical decoding
Polina Bungina: Hazards of logical decoding

Polina first explains what CDC is, and how it can work in PostgreSQL.

Logical Decoding can be used to capture all the DML changes in a database, and export them for other consumers.

She then lists a number of potential problems with this approach, like:

  • Replication slots (primary needs to keep WAL)
  • Big transactions (produce a lot of WAL in a very short time, needs to be stored and replicated)

And if that is not enough, she moves on to explain “specific hazards”:

  • What if the replication slot is still there, and the consumer is not fetching WAL

This can lead to situations where the consumer is no longer able to fetch the outstanding WAL in time, while the primary is producing more WAL.

You can find the presentation here.


After the Meetup, a larger crowd of people stayed and discussed all kind of topics. Walking around, it was mostly database related, but also where the next Meetups will be, questions about in Munich and such. Around 10pm, everyone went back home.


Zalando is a multinational e-commerce company, based in German, and specializing in fashion and lifestyle products. It was founded back in 2008. Zalando operates as an online platform that connects customers with a wide range of clothing, footwear, accessories, and beauty products from various brands.

Zalando has expanded its presence across Europe and has become one of the largest online fashion retailers in the region. Zalando’s success is attributed to its focus on innovation, customer satisfaction, and strategic partnerships within the fashion industry. The company continues to evolve and adapt to changing market trends, solidifying its position as a prominent player in the online fashion retail sector.

Categories: [Berlin] [Events] [Postgresql-News]