 So here to answer if only We have Valentin. I'm not gonna try pronouncing his last name as I mentioned. So Valentin works at a company called Well, I pronounce it Zalando. I believe it's Zalando. I have a terrible German accent and the way I first met him Is he told me like yeah, if you live in Europe, you know exactly what this company is if you don't then you don't but actually we should because they IPO'd last July for about five billion euros which at the time was seven billion dollars now It's about five billion dollars, but All right, okay enough comedy so with that said Valentin was in charge of their database platform And he chose Postgres and actually has done some very unique things in terms of architecting it and making Postgres work within His organization's requirements Valentin also saved me personally last year when one of our speakers unfortunately had to drop out because they were sick And he happened to be here with the talk already prepared. I was like, hey You want to give like a scalability talk? So after tweaking the title? Valentin like came you know worked like all night, you know tweak the talk came first thing in the morning gave it Did a wonderful talk and you know when he submitted his presentation this year much like Ramo We rejected it and asked him to do a keynote. So with that further ado Valentin, please come up Yeah, it will be very difficult to beat Ramo on the charisma part or on Anything that is Turning I wonder if this will work Yeah, good so Yes, I'm will be trying to to Deliver the information kind of the message how we at salando the the company that actually nobody is aware of in us use Postgres and Yeah, so we are an online store and everything is fine and shiny and it's just easy It's very easy to build in the lines stored kind of it just do what the One of the cms pages and kind of you you build your online store the problem was that Salando started to grow by 100 percent every month and didn't stop for several years. So Very very fast. It was that kind of the PHP store Based on my sequel didn't scale anymore so we rewritten everything with Java and Postgres and Yeah, I had the possibility to Put some additional things so Yeah, so it was a Wonderful theoretical part from Rommel and I will try to give Yeah, I thought it will be more kind of practical, but It's kind of practical kind of theoretical. Yeah, so This is Salando store. Yeah fashion fashion is hard because actually you don't know immediately what kind of fashion and what kind of kind of Things people will like to wear tomorrow. Yeah, so it's kind of it can be like this or maybe like this Yeah, so it's kind of and Yeah, this is a huge problem. Yeah, so it's kind of to keep up with people's needs and people's kind of Inspiries so to say yeah the problem is that everything that is kind of under this shiny online store is kind of dirty sometimes not so nice So and it's not like this like on this nice picture so sometimes you have to operate something like this and We have three of these and they are huge kind of huge many people work there Yes, and you have to have something that you can trust your data to and the Trusting your data is kind of some something like for the online store. You have kind of something like this that is underneath Kind of the online fashion store For the company that is doing real business that trusts its data to the database is something like this happens yeah, so The question is of course, is it easy to use Postgres as something that you can trust data to and Yeah, it's should be actually easy, but yeah, let's let's try to answer the question. Is it easy to use Postgres or not? Yeah, actually, it's one of the most stable open source projects that I ever have seen the Kind of strong gatekeepers like Tom Lane and some others Don't let any Sorry bullshit. Is it okay to say it and Pitches to pass through yeah, so I Personally had a chance to roll out Postgres 9 0 release candidate 1 in Production as we were starting because I didn't want to start with 8 4 and then we great It was a risk But we didn't have any life issues during the rollout. It was an impressive Experience and just two years ago. I think we we found one database that is still was still running on 9 0 release candidate 1 without a single problem. We just forgot about it Yeah, we built the monitoring and we found it yes it's incredibly stable code and it's Really Impressive how difficult it is to kind of to break it. Yeah We tried Yeah, the ability of Postgres to keep minimal locks really unleashes the immense power the the problems that actually Led huge companies to Create no sequel databases the the problems that for example that my sequel has It's not bashing. It's just kind of yeah, the problem of not being able to change the data model as fast as possible Is is a huge problem and postgres doesn't have it in most cases and it becomes better and better and better so as an example our developers at salando they actually Do up to 100 data model changes per week and We didn't have a single downtime or Single problem that was actually Yeah We didn't have a single single problem that was the that was Oh, okay That was based on this kind of on the data migration of model change, it's incredible We created the whole process that kind of the developers can actually go on and kind of Introduce changes and we are supporting them they of course as the pro as the person who is Aware of postgres more than just a simple developer Yeah, one should always support them the We at salando taught every Java developer that were before actually PHP developers some of them to write sequel and write changes to the database and actually Run for themselves. They don't need database guys to Create changes to the database. The only thing that we do we do we just review some of the code of people who are new and people who actually are really Long time at the company we are kind of just allowing to roll out everything by themselves It's incredible speed. They don't have any problems of changing the other models and yeah, if they're well-trained It's just Miraculous Store procedures Rommel also actually Mentioned that the store procedures at salando are the core of actually of success That we have there so all the data access to most important products and projects Actually is done through the store procedures one can think it's a complicated stuff to do but we came out with very Easy way to version store procedures. You don't need to do kind of very complex rollout procedures It's really impressively easy way to use store procedures in salando Postgres it's a lot of as well because we have the process. We have the tools What we don't have though is for example automatic diff generator for data model changes This is the problem that kind of we are still working at but yeah, but store procedures are cool and Java developers don't like to write store procedures as they think sequel is Slow or difficult or they just can't Perceive it. Yeah, train them When they understand how cool sequel is they even understand how cool lisp or closure is They start learning closure and then run to me and say oh, it's just like sequel. Yeah, okay sequel is better because closure doesn't have planner I Sometimes think why the hell There is no store procedure language for small talk. It would be really cool and then the kind of Yeah Another thing that is actually Impressed impressive in postgres is how compact the storage is how easy it is to actually to add new columns without Actually need to rewrite the whole table how easy it is to store Modeled data the data that you actually that where you have the schema and not just a set of attributes like in Jason or just another Document so to say how compact it's can store it We haven't we experienced impressive relief so to say when we managed to Proxy all accesses to one big MongoDB cluster through a small custom written Java process that speaks MongoDB protocol Rewrites all the requests to sequel and sends them to the Actually event store database that we have in postgres We threw out the Mongo cluster big Mongo cluster with five nodes Yeah, and now one one for now one cluster of the database runs it so it's Incredibly Efficient it's it's takes less space it feeds in memory. Yeah, it's cool The thing the impressive thing that comes in this are very promising thing that comes in as the logical replication so kind of it actually Gives you a lot of possibilities that are coming the multi master replication is coming Faster major version upgrades It was possible to really upgrade minor version really really fast Now it will be possible to do the same with a major versions Partial application very important because it will be able to create some kind of clones of your database that Holds only the data that you need like cache updates you can actually stream your logical data stream into Memcache Redis Cassandra Mongo if you need it's an incredible possibilities that are opening up for postgres community Monitoring yeah, many say there is no monitoring possibilities for postgres But actually there are a lot of monitoring possibilities So we in salando also contribute to open source by kind of we created this PG view and PG observer There are other cool and impressive projects Yeah, it's easy to monitor it's easy to Keep track of everything that happens PG observer for example is actually based on the fact that we use store procedures So it analyzes much more of the store procedures with trying to do predictions about the kind of the Instabilities in the performance and so on so It's really Impressive system, so I could talk about advantages of using postgres a lot But I probably don't have much time because I want to also talk a little bit of the things that actually the challenges that the Our community Faces so is postgres easy Sometimes it looks like this when you are actually Doing things that are not so easy to do for example there is no way to install it by one click What I mean with that is of course not that you are kind of just take The default installation and that's it in most cases you still have to tweak this big configuration file that For example RDS and Heroku do it for you really cool. Yeah, they just click you have One installation and kind of you have one instance. Of course, this is a little bit different thing, but Maybe somebody can contribute in that by kind of doing the installer that just installed it on your machine and Kind of ask you two three questions and and you have it It's not about High-end database specialists to use it. It's about developers who can just easily roll it out and Try it out and say, oh this is a cool database that supports stored procedures and and and Blackjack Yeah High availability High availability is something that actually postgres has but it's with a quirk Yeah, so you still there is no standard way of kind of failing over you still have to have some tooling to do it there are impressive Recipes for pace maker for example that work and last year on one of the Talks the it was presented how I think it was I saw Yeah, so they they created the cluster of that it was bound with pace maker that was actually Doing automatic fail over really without any intervention from anybody else. Unfortunately, this project is not open sourced We need more Engagement in this area as well, I think Automatic sharding is something that Simon sometimes once told me that he doesn't believe that you can take kind of Many dogs and they should kind of push the sledge It can be one big elephant In most cases it works especially for the big companies that need huge amount of kind of data, but we also saw that Sharding data into kind of in parallel Data models and data schemas or to several machines helps a lot because you have kind of separated Parts if one fails then others don't They fit in memory in most cases and kind of there are advantages and There is also a progress. This is data also created an impressive product like PG shard and Kind of we are using a sprock wrapper that automatically shards your requests From the Java application to to several shards and calculates the shard IDs and does some magic It's the recently just I think last week Tom Lane committed to the big Patch that enabled inheritance of foreign data tables from the kind of from the normal table it opens up a huge possibilities actually for version five nine five I suppose to Shard your data from the database Transparency, yeah, you would be able to kind of create kids that locate on different charts Yes, so What I want to have from the postgres is that kind of the elephant Herders actually play cards and enjoy their life and the postgres is just running for themselves Not giving us any trouble at all This is easy to say the question is yeah, what what you as Participant of this vibrant and nice community can do yeah, so There are some hints from me because I'm kind of I'm trying to follow this hints. I don't manage to follow them all Help to test better versions. This is very important to actually Invest into infrastructure for testing your systems when the new versions are coming out at salando have staging environments where I'm kind of two layers Before production and kind of as the new version comes out. We were rolling out the We called release staging pet staging whatever kind of the we're rolling out the new release candidates kind of Immediately to check if our code is compatible if there are any issues with the kind of with the with the system yet helping to test Pre-release versions will definitely help the problem One of the previous versions. I think it was a 9 3 The problem was that all previous versions of postgres were so stable that nobody actually cared about testing 9 3 version It looks like it because this was the version that had Kind of issues with some corner cases and there was no tested so it's kind of one can discuss How can one actually improve on that? But unfortunately if you think that somebody will test it for you You are wrong There will be always first person who gets the error. I Understand you don't want to be the first person. Nobody wants to be the first person to see Where the error kind of experiencing the problem, especially the complex problem, but We should support we can't support the community by creating staging environments by creating by by Inspiring our developers to use new versions and test them for their test environments and so on Support posters companies Posters companies are the ones that are actually driving the Progress in posers community quite far. So the most important patches were support kind of provided It's a recent pages were provided by such companies. I don't want to name the to name them not to forget about somebody but It's very important. I myself failed to support one of them But we're trying to do What we can buy open sourcing tooling Another tip so to say is to about participating in commit fests This will increase the amount of kind of code reviews if you can invest into your developers Invest your developers in the in participating in commit fests. It will be really an impressive Advantage for posgers community review the changes participate there and kind of Everybody and then it will reduce the risk that you will be the first one who will see a big problem with your system And of course open source your tooling That we are trying to do we kind of we open source everything that we provide for posgers and many other companies are also trying to do that but Apparently not many yeah, so Not all of them many but not all of them Yes, so this are more or less things that I want wanted to say and I hope Yeah, it was not too boring to listen all this kind of Advises from the old man Yeah, so This is more or less what I wanted to say and thank you very much for your attention and yeah