@@TheArtOfTheTerminal also could you go a little slower when showing the examples? It's like you type, execute and promptly switch to another thing - maybe some commentary during the typing?
I was in the MariaDB IRC to report a bug back in 2014, one of the devs said "I dunno I use postgres", so I switched the project I was working on at the time to postgres (equivalent connector API usage worked instantly without the bug) and it's been my go to ever since :P
The problem with many plugins is the significant lack of documentation and support. Numerous plugins are written with awful documentation leading to considerable time spent trying to figure out how it works, only to find that there are undocumented issues to deal with. That is the downside of having people develop what they feel like and then walk away.
@@TheArtOfTheTerminal Happened shortly after I started using ReiserFS as well. "BDFL/Primary Developer goes to prison" is not a new story for Open Source. One of the reasons major projects transition to some sort of foundation stewardship model
true The online course I follow. this is what I read in the notes. "We've moved away from Mongo to Postgres because our research on tech recruitment showed us that companies are looking for more SQL-based DB competence and moving away from Mongo and NoSQL." Now TH-cam recommended this to me. SCARY isn't it ?
Stored procedures should be treated just like any other code: with CI/CD practices. Debugging is always hard and imo the best you can really do to troubleshoot issues is to have great logging.
I don’t like to couple any logic to the database. In my opinion stored procedures should just be used to extend the functionality. In the company I work they implemented a lot of logic in the oracledb to convert imported csv/excel and more to their own datastructure, Sync data between customers Do calculations for orders Scheduled jobs like emails And other stuff. These are things I would have decoupled in external services or in a middleware. In my opinion a database should just be used as a sink and source of data. The only reason to touch a db is to improve performance. Anything else should be done in a middleware.
I am coding for 5 years and managed a Database with 10k lines of code because of the procedures. It was very nice because once it is setup it is stable af. I used mariadb and it was the first time. We also made a lot of mistakes but the procedures were not one of them. The main Problem was using an SQL db for a web scraper with very heterogenic data ^^, but that is just a tangent.
As a Postgres fanboy who's never spent much time with postgres plugins, this has made me so excited to try to use my PG databases to replace some of the other services I'm using! Thanks for the awesome video, easiest subscribe I've clicked in a long time!
Hey this might be really random, but I am about to graduate from Uni, and I want to know what I can do to get a job in the tech field. You seem like you got experience so I'd like some advice, cause I've been watching videos on how to get a job and tbh it's scaring me a bit lol. Any help would really be appreciated ❤
At my former job our postgres was the message queue, with pub/sub and triggers. The caching layer, with tables with json columns, where triggers invidated the cache. The caching layer to slow on prem oracle servers, with materialized views and oracle-foreign datawrapper, a time traveled database producing data as it was using views and the temporal extension and a cron job orchestrator using pg_cron and stored procedures.
@@TheArtOfTheTerminal We had very good experiences allot of the trigger logic and the CI/CD part was not a problem. We were a small team of 4 developers. So we did not have big problems of resource sharing and silos. That would be something I would expect happen in larger setups. Generally my experience was that it worked fine overall. Generally I like the minimalistic setup, so you don't need 5 gb of ram to have a local system up and running and the fact that all your services can talk to each other unhindered. If we had 2-3 times as many developers, I would probably have suggested to split it more up.
@quanghuynh9300 We experienced that the users network was the bottleneck using AWS aurora postgres. In inter data center traffic is much faster than network calls, so we could see that there where limited gains even for a faster in memory solution
Postgres is one of the best operating systems ever! Good thing they even ship a decent database with it🎉 (I have only ever used Postgres for big projects and not more than 10% of features)
Oracle are way over engineered on the language side. They have the sole intention of catering to enterprises. Their PLSQL documentation are humongous but tbh many of their features are useless and keep changing over the years which is probably intended since enterprises dev loves having to work on changing stuff without gaining nothing just to keep the money rolling in 😁
@@RevHardt I took over a web application from someone who decided that building the entire app in postgres was a good idea. And this was before the modern tooling that we have now. They had a php frontend that acted as a proxy. Would convert the request into a stored proc and return the response to the client. Holy lord that was a hard app to modify and debug.
@@RevHardt most of my other experiences came from working in a banking application built on oracle. You don't know pain until you have to follow cascading triggers.
I'm glad the algorithm brought me here, what a gem. I use PostgreSQL every day and did not know it was this extensible. I enjoyed the video format and wish you success with the channel, subscribed!
The reason MySQL was fast was that it was missing a lot of basic features and wasn’t even ACID compliant. At that point it could hardly be considered a real database. Still glad I took the time to evaluate different databases and found PostgreSQL, instead of blindly following the LAMP crowd. I’ve been a happy PostgreSQL user for over 20 years.
yeah used to make me so mad back then to hear devs at work go on and on about MySQL. When I would bring up ACID and ISO SQL Standard compliance -- and how that MIGHT be useful if they ever need to switch databases -- I was just met with blank stares. It's like all they wanted was a "bit bucket" or something. What's worse is, who paid the price for this stupidity? I have yet to hear of anyone's business or career ruined for being so ignorant of these critical issues. If anyone knows of any good stories, please share 🙂 It's like they all got away scott-free and moved on -- now all those guys would probably talk about how much they love PSQL!
@@CalifornianViking It wasn't faster in the late 90s or early 2000s, when LAMP was the hot new thing and everyone was using it. Or earlier than that when Mod Perl was the backend of choice for "real" developers. But more to the point MySQL had more tools built around it and was easier to get into. Everyone learned it because it was easy to learn. PostgreSQL had more functionality but a bit more of a learning curve. Obviously things have changed since then.
@@beepbop6697 It was considerably faster than Postgres back in the 90s, for the reasons I stated. Postgres has always been a reliable database, mySQL hasn't.
@@TheArtOfTheTerminal Agreed. It's so much more easier to focus on the content when the pacing is relaxed and there's no context switching a billion times per video. Keep up the good work!
Great video! Loved everything about it! The way you presented was great, the pacing was good, and the trippy terminal display with the typing sounds was just awesome. Subscribed!
Great video. Thank you. Its been one of my favorite DBs for years. Its interesting how everyone that keeps chasing the new shiny, wnd all the things i learn back in the 90s and 00s keep coming back.
Cryptocurrency comes back every few years. People rediscover scams and bad ideas all the time. Retro is just a weird form of chasing the new shiny. When we stopped doing things, there is usually a reason.
Great video, didn't know PosegreSQL is this awesome also please have the terminal full screen or at least bigger horizontally so it can be more readable.
Thanks for this, it's really helpful to know how much I can lean on Postgres in my various side projects. I've been getting a bit bogged down trying to emulate the tech stacks the 'big boys' are using, but... it shatters my focus and prevents me from getting things done. You've inspired me to try a different approach: I'll just put _all_ the backend stuff in Postgres by default, and only move things if/when forced. Seems liberating, honestly, to ignore all these hyped-up technologies and just get 💩done!
Haha wow! I've used postgres at my job for a via ORM, but I did not know it was this capable! I've always preferred pg due to its stability (IME) compared to mariadb when hosting stuff for my homelab. I'm kind of excited to look into some of this and build a project around it.
In 2016, I worked on a project where almost all the business logic was in a database (Hi Oracle with PL/SQL) and it was a nightmare. There is only one upside to this approach: if you move all business logic (especially if you move cache, elastic search, etc. like in the video) into a database, you are probably safe from having to let go forever because no one would be able to understand how things work. And the phrase "Hey, join us, we have everything in the database" doesn't seem so attractive to developers. I believe it may be attractive for DBAs but moving all the stuff into the database you limit yourself in hiring.
I agree that *business* logic probably shouldn't be in the DB, I was talking about *data* logic with an example of application users management. I know that many developers won't like the idea of having just a handful of components in a tech stack, because we are all resume-driven to a certain extent. But at some point many developers are also getting tired of a constant framework/stack/whatnot churn and yes, they will vote for simplicity. Because they want to do creative work and solve business problems instead of editing yaml files 80% of the time. Just python (php, perl, ruby, elixir etc) and an SQL database -- both running on bare metal servers -- is really enough for most IT projects out there. A stored procedure that hashes passwords or generates tokens, written in pl/python and covered by unit tests like all the rest of the code is nothing scary.
I have used Postgres extensively. Consolidated document databases, key value stores, graph, and time series. It is truly an amazing database. Two things worth mentioning: PostGIS is a geographic information system in Postgres, it can compete with ESRI. AWS Aurora Postgres is fast.
Thank you so much for this video. I've been a professional Postgres fanboy since 2018 and you've still taught me a ton. Gonna go uninstall couchbase and give postgrest a try now...
During my apprenticeship I was dealing with Oracle and DB/2 servers. That taught me the advantages of procedual languages like PL/SQL. But those servers weren't exactly affordable to the common hobbyist at that time. MySQL was fast but didn't have any sort of PL at that time. So I ended up starting to use PostgreSQL for my own projects, to get the features I had gotten used to and more. It wasn't the fastest but it was more grown up than other free SQLs.
Super interesting thanks for sharing! Curious how well that can scale and at what point it becomes easier to scale application servers and keep the database lean.
I Love this felling when you accidentally step on new rabbit hole. I was thinking about serving hmlx directly from the database. Seems like someone already did it 😂.
All those features should be use to power up dump storage, we should save all potential to expensive tasks related to storage. Thank you for your content!
As a GIS analyst, I like PostgreSQL simply because of its PostGIS extension. Its usage is very simple yet powerful to handle any use case I could ever come up with. Its support by GIS tools such QGIS is excellent too. In my opinion, I don't think there is any genuine excuse any team would choose Oracle or SQLServer over PostgreSQL. Yet, these sh**t dbms are still popular in some companies...for some mysterious reason. Applying the Ockham razor theory, I think it's because devs in these companies are lazy and don't want to migrate or learn a new tool, albeit superior. Or, sales guys at these providers have lined the pockets of the tech decision makers at these companies.
That’s because commercial db like Oracle or MS come bundled with support. The only time you will see Postgres or MySQL in enterprise production massive environments is when some big cloud vendor like Amazon sells this as a service, and they probably won’t let you install many of the extensions shown
I started using Postgres back in the early 90's with version 4.2. Back then, you downloaded the code and built it yourself. Used table inheritance back then as well.
@@TheArtOfTheTerminal I would associate the acronym primarily with a setup for web servers (ref. Apache as well), so in that context PHP would be the "closest fit", at least back in those days. Well, Perl was (is) is used for a lot of stuff, but it looks too tidy compared to PHP intermingled with HTML ;-) Would be great if someone could provide a pointer to support the claim that P = Perl.
@@benhetland576 apart from Perl being used through CGI and other setups, mod_perl (for Apache) existed since 1996, before PHP started to be used by anyone (PHP3+ existed from 1997 but no one used it, and when it was used from early 2000s, it was initially through a CGI handler interface if I remember correctly).
The only problem I have with this is that stored procedures seem like a bad idea. It is already hard enough to manage databases and their versions, it doesn’t seem like a great idea to fragment a code base potentially even more with a stored procedure.
The point of it all is that the database is your single source of Truth. Stored procedures allow you to enforce data integrity no matter what the source of incoming data is. If you need something updated every time something else happens you don't want to rely on external code to make sure that happens. If the database is enforcing it it doesn't matter if you run an insert from a command line, an API, or by some other method things are going to happen the same way consistently no matter what
I have been in an app with allot of business logic in the database. We used allot of triggers and stored procedures, a pub sub system to align all our clients. It gave a microservice fell, where the developer just changes a row and the triggers handle the rest. But because we used almost postgres for everything, we could make very simple automated fast end-to-end tests. So we adopted a Behavior driven development testing style and it worked great. When ever we merged something we generated the entire trigger, stored functions, etc. code and if there where any changes we just did a replace. It worked rpetty well overall
Although not perfect, a good solution for managing schema versioning is a migration tool (Flyway, Alembic, etc.). Just treat stored procedures as any other part of your schema and manage them with migrations. The fragmentation problem can be real, but you could judiciously apply a stored procedure as optimization for a data-intensive task in the same way as a python function rewritten in C as an optimization for a CPU-intensive task.
I'm so happy right now. I just integrated Postgres as a module into my automation stack, treating it like a boring old table, column, and row relational rigamarole. That all works, but what you just revealed here tells me that I can adopt some way slicker strategies, and my stack now has a fully integrated solution for a whole range of problems I haven't even approached yet. I'm 100% on team BoB (Bet on Boring), but I would add that many boring things can combine to make very exciting things, as we are seeing in Postgresql's feature set.
The reason I ended up using MySQL 8 for my last API is that it supports JSON Merge-Patch natively. As of my work on that app a couple of years ago, PostgreSQL did not.
Hey there, I'm an engineer at Tembo and we built the Trunk Extension Registry and CLI. It's so great to see it being used in this video! We're open to feedback, contributions, etc, so feel free to reach out :)
I am torn. Whilst some of these things look cool, I have to wonder if people ever stopped to think, "Should I do this?" I just keep wondering how scalable are some of these things.
Very valid concern. "Bigger" extensions like Apache AGE (for graph data) and TimescaleDB (for time series) have communities around them with forums where you can ask questions about other people's experiences re: scalability. And you can also load test the new setup in a test environment.
@TheArtOfTheTerminal I've been in the software development game since I started working over 15 years ago, and I've seen a lot of things in my time with databases, from engineers using stored procs to perform ETL, to them using discrete processes to perform the ETL, to using stored procs for business logic, to being "select from tables, and process in the application layer". Hell, the DBAs at my current company freak out if you add foreign keys to your tables because of the scale we operate at. Our database servers have to perform thousands if not tens of thousands of writes per second, only to be replicated into a replica chain thar needs to serve hundreds of thousands of reads per second. Watching the video just leaves me in a torn state. I mean, I've seen and experienced the benefits of keeping your code as close to the data as possible, but I've also experienced the pain of that. Part of it being process, the other part being ignorant of better practices.
Hey ! Here’s a crazy new idea.. what if we let the database do what a database is supposed to do and move the business logic to a separate “backend” ? I think it’s called separation of concerns or something like that
As someone who supported Enterprise products that used MySQL and PostgresSQL databases for their backends- PostgresSQL is far more stable, capable, and versatile. MySQL and MariaDB just can't scale the same. And don't even get me started on using MSSQL as a product backend (although it's better than it used to be). PG has had the amount effort put into it by developers for a reason.
"Radical Simplicity" sounds a lot like "just fucken put everything in one place and call it a day because if it barely works, it still works". Each tool should do exactly one job. Can't get any more "radically simple" than that. If you require 20 microservices, but all of them are lean and serve a single purpose, then go for it. But if your web server does everything from REST API, streaming HTML, funky no-js clientside tech, GraphQL, caching, queues, etc. in like 3 files in total, then that is a PROBLEM.
You are right, some projects are better off with 20 (or 2000) single purpose microservices. What the radical simplicity means (not my term btw) is asking yourself a question: do *I* *really* need X microservices like these other guys? Or maybe my business problem can be solved with an SQL database and a pgmq task queue, just two components that, yes, each do exactly one job. Sometimes Postgrest (the REST API thing) is also the solution -- as some people commented here. There is a reason why people migrate back to on-prem from public clouds, why htmx/alpine micro-frameworks are getting traction. Imo professionals are getting tired of *unnecessary* complexity.
Thing is most extensions need a hosted instance, some providers have no logs access, and debugging things is hell, after using triggers on a project and having to traverse pg logs put many doubts using pg for any other use than db. Interesting video on these extensions though.
Wow very informative. It is mind blowing. Small suggestion: try not to paster large chunks of text at once. And if so leave them a bit longer on the screen
PostgreSQL is my favorite OS
Wait til you use it as a compiler.
Is it better than Emacs?
PostgreSQL is my favorite motherboard
It just needs a nice editor, just like emacs (emacs also needs a great editor)
@@creativecraving Both operating systems, PostgreSQL and Emacs have the same problem: they lack a good editor.
The chosen terminal width should be counted as war crime.
I hear you. That will change in the next video.
echoed
Relic of a past time. Thankfully we have better tech now 😂
Yes especially terrible on ultrawide monitors.
@@TheArtOfTheTerminal also could you go a little slower when showing the examples? It's like you type, execute and promptly switch to another thing - maybe some commentary during the typing?
I was in the MariaDB IRC to report a bug back in 2014, one of the devs said "I dunno I use postgres", so I switched the project I was working on at the time to postgres (equivalent connector API usage worked instantly without the bug) and it's been my go to ever since :P
Niice
lol
😂
"But can it run Do..."
"Yes."
I am sold!
Omg it's real. jfc
Never get rid of these sounds you used. The soundtracks, typing sounds etc.. it's awesome
ASMR for nerds :) Thanks for the feedback!
The problem with many plugins is the significant lack of documentation and support. Numerous plugins are written with awful documentation leading to considerable time spent trying to figure out how it works, only to find that there are undocumented issues to deal with. That is the downside of having people develop what they feel like and then walk away.
@caty863 There's one reason.
That's the problem of opensource in general imo. Remember corejs story? www.theregister.com/2020/03/26/corejs_maintainer_jailed_code_release/
@@TheArtOfTheTerminal Happened shortly after I started using ReiserFS as well. "BDFL/Primary Developer goes to prison" is not a new story for Open Source. One of the reasons major projects transition to some sort of foundation stewardship model
@@TheArtOfTheTerminalnot only in opensource code
100% agree. frustrating as fuck.
Sometimes the recommendation algorithm is scary accurate. This was exactly what I needed, and I didn't even have to search for it. Great video!
My thoughts and prayers are with you brave traveller
How I’m kinda feeling rn
My main thought reading these type of comments is "please don't have a great business idea and build it this way."
true
The online course I follow. this is what I read in the notes.
"We've moved away from Mongo to Postgres because our research on tech recruitment showed us that companies are looking for more SQL-based DB competence and moving away from Mongo and NoSQL."
Now TH-cam recommended this to me.
SCARY isn't it ?
Be carefull what You wish for :). It is heading for "my wish exactly, as I wanted it... turned nightmare".
25 years ago I learned that stored procedures are bad. Now I'm seeing this 😂🎉
Why are Stored Procedures bad? They make life so much easier. $.02
@@nandesueasy to make your future much more difficult. maintaining & remembering who did what where and debugging it all will be a nightmare.
Stored procedures should be treated just like any other code: with CI/CD practices. Debugging is always hard and imo the best you can really do to troubleshoot issues is to have great logging.
I don’t like to couple any logic to the database. In my opinion stored procedures should just be used to extend the functionality. In the company I work they implemented a lot of logic in the oracledb
to convert imported csv/excel and more to their own datastructure,
Sync data between customers
Do calculations for orders
Scheduled jobs like emails
And other stuff.
These are things I would have decoupled in external services or in a middleware.
In my opinion a database should just be used as a sink and source of data.
The only reason to touch a db is to improve performance.
Anything else should be done in a middleware.
I am coding for 5 years and managed a Database with 10k lines of code because of the procedures. It was very nice because once it is setup it is stable af. I used mariadb and it was the first time. We also made a lot of mistakes but the procedures were not one of them.
The main Problem was using an SQL db for a web scraper with very heterogenic data ^^, but that is just a tangent.
As a Postgres fanboy who's never spent much time with postgres plugins, this has made me so excited to try to use my PG databases to replace some of the other services I'm using! Thanks for the awesome video, easiest subscribe I've clicked in a long time!
Proud to have been using Postgresql since 1998
Hey this might be really random, but I am about to graduate from Uni, and I want to know what I can do to get a job in the tech field.
You seem like you got experience so I'd like some advice, cause I've been watching videos on how to get a job and tbh it's scaring me a bit lol.
Any help would really be appreciated ❤
I believe I began looking into it when it still used the rather "perishable" name Postgres95...
At my former job our postgres was the message queue, with pub/sub and triggers. The caching layer, with tables with json columns, where triggers invidated the cache. The caching layer to slow on prem oracle servers, with materialized views and oracle-foreign datawrapper, a time traveled database producing data as it was using views and the temporal extension and a cron job orchestrator using pg_cron and stored procedures.
Interesting. Could you share your experience in terms of pros and cons for such an infra?
@@TheArtOfTheTerminal We had very good experiences allot of the trigger logic and the CI/CD part was not a problem. We were a small team of 4 developers. So we did not have big problems of resource sharing and silos. That would be something I would expect happen in larger setups.
Generally my experience was that it worked fine overall. Generally I like the minimalistic setup, so you don't need 5 gb of ram to have a local system up and running and the fact that all your services can talk to each other unhindered.
If we had 2-3 times as many developers, I would probably have suggested to split it more up.
Respect, that's a lean company
@quanghuynh9300 We experienced that the users network was the bottleneck using AWS aurora postgres. In inter data center traffic is much faster than network calls, so we could see that there where limited gains even for a faster in memory solution
I have no idea what I just read here lol
Postgres + HTMX incoming
😂
On it
The GigaChad web stack
The "I made a grifting NFT pyramid scheme in 20 lines of code" tech stack
Postgres is one of the best operating systems ever! Good thing they even ship a decent database with it🎉
(I have only ever used Postgres for big projects and not more than 10% of features)
As someone who built applications fully in the database (looking at you Oracle), it's not for the faint of heart.
Can you please tell us about some scary scenarios you've dealt with?
Oracle are way over engineered on the language side.
They have the sole intention of catering to enterprises. Their PLSQL documentation are humongous but tbh many of their features are useless and keep changing over the years which is probably intended since enterprises dev loves having to work on changing stuff without gaining nothing just to keep the money rolling in 😁
@@savire.ergheiz that's true but besides the point.
Building in the database is hard. Very hard.
@@RevHardt I took over a web application from someone who decided that building the entire app in postgres was a good idea.
And this was before the modern tooling that we have now.
They had a php frontend that acted as a proxy. Would convert the request into a stored proc and return the response to the client.
Holy lord that was a hard app to modify and debug.
@@RevHardt most of my other experiences came from working in a banking application built on oracle.
You don't know pain until you have to follow cascading triggers.
I'm glad the algorithm brought me here, what a gem. I use PostgreSQL every day and did not know it was this extensible. I enjoyed the video format and wish you success with the channel, subscribed!
Thank you for support!
The reason MySQL was fast was that it was missing a lot of basic features and wasn’t even ACID compliant. At that point it could hardly be considered a real database.
Still glad I took the time to evaluate different databases and found PostgreSQL, instead of blindly following the LAMP crowd.
I’ve been a happy PostgreSQL user for over 20 years.
yeah used to make me so mad back then to hear devs at work go on and on about MySQL. When I would bring up ACID and ISO SQL Standard compliance -- and how that MIGHT be useful if they ever need to switch databases -- I was just met with blank stares. It's like all they wanted was a "bit bucket" or something. What's worse is, who paid the price for this stupidity? I have yet to hear of anyone's business or career ruined for being so ignorant of these critical issues. If anyone knows of any good stories, please share 🙂 It's like they all got away scott-free and moved on -- now all those guys would probably talk about how much they love PSQL!
Fast? We dumped MySQL because of all the performance issues with it.
Postgres is faster than MySQL. I switched in 2016 and never looked back.
@@CalifornianViking It wasn't faster in the late 90s or early 2000s, when LAMP was the hot new thing and everyone was using it. Or earlier than that when Mod Perl was the backend of choice for "real" developers.
But more to the point MySQL had more tools built around it and was easier to get into. Everyone learned it because it was easy to learn. PostgreSQL had more functionality but a bit more of a learning curve.
Obviously things have changed since then.
@@beepbop6697 It was considerably faster than Postgres back in the 90s, for the reasons I stated. Postgres has always been a reliable database, mySQL hasn't.
Surprisingly good video. Had expected much less to be honest but the short explanations with shell examples were great.
Thank you for the feedback! Happy you liked it.
Postgres in 2024 looking great, thanks for sharing!
Thank you for the feedback!
Oh, man. I'm sold. I had no idea is was such a complete solution. I'm feeling a database powered app development system coming up in my near future.
Very nice video! I love how you have long takes and not cut every half second like so many TH-camrs do nowadays.
Thank you for the feedback. I too am tired of the flashy mr.beast-style editing :)
@@TheArtOfTheTerminal Agreed. It's so much more easier to focus on the content when the pacing is relaxed and there's no context switching a billion times per video. Keep up the good work!
I HATE it when a TH-camr constantly cuts between two cameras for no reason.
Thank you! Amazing introduction and overview of PostgreSQL possibilities.
Thanks for the feedback!
What an absolutely brilliant coverage of Postgres! Excellent video.
This is one of the best PostgreSQL videos that I have ever seen on the web.
Thank you so much :)
Great video. God I love PSQL and the open source community.
I would have loved for you to talk about scalability and partitioning (e.g., vs Scylladb)
Great video! Loved everything about it! The way you presented was great, the pacing was good, and the trippy terminal display with the typing sounds was just awesome. Subscribed!
Thank you so much!
Solid and well presented information, thank you for sharing this. Looking forward to the next one!
Great video. Thank you. Its been one of my favorite DBs for years. Its interesting how everyone that keeps chasing the new shiny, wnd all the things i learn back in the 90s and 00s keep coming back.
Cryptocurrency comes back every few years. People rediscover scams and bad ideas all the time. Retro is just a weird form of chasing the new shiny. When we stopped doing things, there is usually a reason.
Great video, didn't know PosegreSQL is this awesome
also please have the terminal full screen or at least bigger horizontally so it can be more readable.
Thank you :) Will do.
It was fine a lot of the time, but eg 6:16 when you used rustup the progress bars overflowed
Outstanding content. At the moment you mentioned PostgREST you got my sub and 👍🏻
Thanks for this, it's really helpful to know how much I can lean on Postgres in my various side projects. I've been getting a bit bogged down trying to emulate the tech stacks the 'big boys' are using, but... it shatters my focus and prevents me from getting things done. You've inspired me to try a different approach: I'll just put _all_ the backend stuff in Postgres by default, and only move things if/when forced. Seems liberating, honestly, to ignore all these hyped-up technologies and just get 💩done!
The dude went completely crazy at the end 😆😆😆😆😆
Nicely done video, good job and thank you! You deserve a million subscribers 😎
Thank you so much!
Came for PostgreSQL content, stayed for the Oblivion reference
Haha wow! I've used postgres at my job for a via ORM, but I did not know it was this capable! I've always preferred pg due to its stability (IME) compared to mariadb when hosting stuff for my homelab. I'm kind of excited to look into some of this and build a project around it.
Loved this, cheers. Recently just moved to using Postgres for the first time, and am so glad I did
In 2016, I worked on a project where almost all the business logic was in a database (Hi Oracle with PL/SQL) and it was a nightmare. There is only one upside to this approach: if you move all business logic (especially if you move cache, elastic search, etc. like in the video) into a database, you are probably safe from having to let go forever because no one would be able to understand how things work. And the phrase "Hey, join us, we have everything in the database" doesn't seem so attractive to developers. I believe it may be attractive for DBAs but moving all the stuff into the database you limit yourself in hiring.
I agree that *business* logic probably shouldn't be in the DB, I was talking about *data* logic with an example of application users management.
I know that many developers won't like the idea of having just a handful of components in a tech stack, because we are all resume-driven to a certain extent. But at some point many developers are also getting tired of a constant framework/stack/whatnot churn and yes, they will vote for simplicity. Because they want to do creative work and solve business problems instead of editing yaml files 80% of the time.
Just python (php, perl, ruby, elixir etc) and an SQL database -- both running on bare metal servers -- is really enough for most IT projects out there. A stored procedure that hashes passwords or generates tokens, written in pl/python and covered by unit tests like all the rest of the code is nothing scary.
🤯 Having written MS SQL CLR Assemblies, I REALLY appreciate this approach! Thanks for making me see the light 😝
Happy you liked it!
I have used Postgres extensively. Consolidated document databases, key value stores, graph, and time series. It is truly an amazing database.
Two things worth mentioning:
PostGIS is a geographic information system in Postgres, it can compete with ESRI.
AWS Aurora Postgres is fast.
Great video, hope your channel grows!
Thank you so much!
Thank you so much for this video. I've been a professional Postgres fanboy since 2018 and you've still taught me a ton. Gonna go uninstall couchbase and give postgrest a try now...
Happy you liked it :) Thank you for the feedback!
That is wild. I will try it out in my projects
I designed and built whole MES for steel system in PL/SQL in Oracle. It's a shame that postgres wasn't so popular back then with the industry.
I love the new Oracle Forms
During my apprenticeship I was dealing with Oracle and DB/2 servers. That taught me the advantages of procedual languages like PL/SQL.
But those servers weren't exactly affordable to the common hobbyist at that time.
MySQL was fast but didn't have any sort of PL at that time. So I ended up starting to use PostgreSQL for my own projects, to get the features I had gotten used to and more.
It wasn't the fastest but it was more grown up than other free SQLs.
Truly the EMACS of databases
I'll be honest, I had no idea most of the stuff on this video was even possible.
Neat!
Super interesting thanks for sharing! Curious how well that can scale and at what point it becomes easier to scale application servers and keep the database lean.
Great video! I'd love to know more about running Postgres in a production-like environment.
Thank you 🙏- I like the perspective to leave out network within the backend services 🤘
I Love this felling when you accidentally step on new rabbit hole. I was thinking about serving hmlx directly from the database. Seems like someone already did it 😂.
What a great video. Exciting topic, excellent presentation.
Thank you for the kind words :)
Bro your content is great!! Thank you!! I'm a believer now 🙌🏾💜
Thank you so much :)
Quite impressive how this DB has evolved
All those features should be use to power up dump storage, we should save all potential to expensive tasks related to storage. Thank you for your content!
great video, subscribed, hope to see more from you in the future
Thank you for the feedback :)
Incredible format for a video, love the sound effects lol
It's insane what's possible to do with PostgreSQL. From this 20 minutes wideo I get whole stack of technology to learn for next 2y...
Wtf this is your 5th Video? You have really great Quality of making Videos
Thank you :)
Incredibly great video
Thank you very much!
As a GIS analyst, I like PostgreSQL simply because of its PostGIS extension. Its usage is very simple yet powerful to handle any use case I could ever come up with. Its support by GIS tools such QGIS is excellent too. In my opinion, I don't think there is any genuine excuse any team would choose Oracle or SQLServer over PostgreSQL. Yet, these sh**t dbms are still popular in some companies...for some mysterious reason. Applying the Ockham razor theory, I think it's because devs in these companies are lazy and don't want to migrate or learn a new tool, albeit superior. Or, sales guys at these providers have lined the pockets of the tech decision makers at these companies.
It's not mysterious. They have different priorities. Technical superiority is rarely a factor in most businesses.
That’s because commercial db like Oracle or MS come bundled with support. The only time you will see Postgres or MySQL in enterprise production massive environments is when some big cloud vendor like Amazon sells this as a service, and they probably won’t let you install many of the extensions shown
I started using Postgres back in the early 90's with version 4.2. Back then, you downloaded the code and built it yourself. Used table inheritance back then as well.
Here because Pirate software sent me
The P in LAMP originally stood for Perl, but could also be used for PHP
That is true, sometimes it was written literally as "Perl/PHP". I think though that most of us remember the LAMP acronym as Linux-Apache-MySQL-PHP.
So I guess it has become LAPPP now, then 😁
Boomer 😅
@@TheArtOfTheTerminal I would associate the acronym primarily with a setup for web servers (ref. Apache as well), so in that context PHP would be the "closest fit", at least back in those days. Well, Perl was (is) is used for a lot of stuff, but it looks too tidy compared to PHP intermingled with HTML ;-) Would be great if someone could provide a pointer to support the claim that P = Perl.
@@benhetland576 apart from Perl being used through CGI and other setups, mod_perl (for Apache) existed since 1996, before PHP started to be used by anyone (PHP3+ existed from 1997 but no one used it, and when it was used from early 2000s, it was initially through a CGI handler interface if I remember correctly).
Yea, I use arch btw, you can use PostgreSQL if you like :)
The only problem I have with this is that stored procedures seem like a bad idea. It is already hard enough to manage databases and their versions, it doesn’t seem like a great idea to fragment a code base potentially even more with a stored procedure.
The point of it all is that the database is your single source of Truth. Stored procedures allow you to enforce data integrity no matter what the source of incoming data is. If you need something updated every time something else happens you don't want to rely on external code to make sure that happens. If the database is enforcing it it doesn't matter if you run an insert from a command line, an API, or by some other method things are going to happen the same way consistently no matter what
I have been in an app with allot of business logic in the database. We used allot of triggers and stored procedures, a pub sub system to align all our clients. It gave a microservice fell, where the developer just changes a row and the triggers handle the rest. But because we used almost postgres for everything, we could make very simple automated fast end-to-end tests. So we adopted a Behavior driven development testing style and it worked great. When ever we merged something we generated the entire trigger, stored functions, etc. code and if there where any changes we just did a replace. It worked rpetty well overall
Although not perfect, a good solution for managing schema versioning is a migration tool (Flyway, Alembic, etc.). Just treat stored procedures as any other part of your schema and manage them with migrations. The fragmentation problem can be real, but you could judiciously apply a stored procedure as optimization for a data-intensive task in the same way as a python function rewritten in C as an optimization for a CPU-intensive task.
I'm so happy right now. I just integrated Postgres as a module into my automation stack, treating it like a boring old table, column, and row relational rigamarole. That all works, but what you just revealed here tells me that I can adopt some way slicker strategies, and my stack now has a fully integrated solution for a whole range of problems I haven't even approached yet. I'm 100% on team BoB (Bet on Boring), but I would add that many boring things can combine to make very exciting things, as we are seeing in Postgresql's feature set.
After I see this video. I will delete my excel as a database
Hello, Piratesoftware sends his regards!
Very cool vid man! Keep it up!
Ok, you have totally convinced me to go and spin up a Postgres instance. I will be back in a couple of months!
And thanks for a great video.
Thank you! Extremely interesting to hear back from you on your experience afterwards.
Doom never disappoints.
Should I learn postgresql instead of MySQL?
This is a cool video! Thanks for informing us!
Thank you! Happy you liked it :)
Great video, but please use the terminal full screen.
Thank you for the feedback. Yeah, will change terminal setup.
I had no idea you can do this much.
Product owners are a thorn in the road.
:)))
Amazing video and exactly what i wanted to know more about
Glad you liked it :). Thank you for the feedback!
The reason I ended up using MySQL 8 for my last API is that it supports JSON Merge-Patch natively. As of my work on that app a couple of years ago, PostgreSQL did not.
Hey there, I'm an engineer at Tembo and we built the Trunk Extension Registry and CLI. It's so great to see it being used in this video! We're open to feedback, contributions, etc, so feel free to reach out :)
Hey hey! Thank you for reaching out! It would be awesome to see Debian support :)
I am torn. Whilst some of these things look cool, I have to wonder if people ever stopped to think, "Should I do this?" I just keep wondering how scalable are some of these things.
Very valid concern. "Bigger" extensions like Apache AGE (for graph data) and TimescaleDB (for time series) have communities around them with forums where you can ask questions about other people's experiences re: scalability. And you can also load test the new setup in a test environment.
@TheArtOfTheTerminal I've been in the software development game since I started working over 15 years ago, and I've seen a lot of things in my time with databases, from engineers using stored procs to perform ETL, to them using discrete processes to perform the ETL, to using stored procs for business logic, to being "select from tables, and process in the application layer". Hell, the DBAs at my current company freak out if you add foreign keys to your tables because of the scale we operate at. Our database servers have to perform thousands if not tens of thousands of writes per second, only to be replicated into a replica chain thar needs to serve hundreds of thousands of reads per second. Watching the video just leaves me in a torn state. I mean, I've seen and experienced the benefits of keeping your code as close to the data as possible, but I've also experienced the pain of that. Part of it being process, the other part being ignorant of better practices.
What a platform!
great research and summaries on postgres! I
Thank you :)
This is gold!
Great video. Thank you for your work.
Very informational video
I really enjoyed this video. Gained a subscriber.
Hey ! Here’s a crazy new idea.. what if we let the database do what a database is supposed to do and move the business logic to a separate “backend” ? I think it’s called separation of concerns or something like that
As someone who supported Enterprise products that used MySQL and PostgresSQL databases for their backends- PostgresSQL is far more stable, capable, and versatile. MySQL and MariaDB just can't scale the same. And don't even get me started on using MSSQL as a product backend (although it's better than it used to be). PG has had the amount effort put into it by developers for a reason.
Quality content, subscribed!
Impressive and Very Cool ... Thank You for sharing .. Cheers :)
"Radical Simplicity" sounds a lot like "just fucken put everything in one place and call it a day because if it barely works, it still works".
Each tool should do exactly one job. Can't get any more "radically simple" than that.
If you require 20 microservices, but all of them are lean and serve a single purpose, then go for it.
But if your web server does everything from REST API, streaming HTML, funky no-js clientside tech, GraphQL, caching, queues, etc. in like 3 files in total, then that is a PROBLEM.
You are right, some projects are better off with 20 (or 2000) single purpose microservices.
What the radical simplicity means (not my term btw) is asking yourself a question: do *I* *really* need X microservices like these other guys? Or maybe my business problem can be solved with an SQL database and a pgmq task queue, just two components that, yes, each do exactly one job. Sometimes Postgrest (the REST API thing) is also the solution -- as some people commented here.
There is a reason why people migrate back to on-prem from public clouds, why htmx/alpine micro-frameworks are getting traction. Imo professionals are getting tired of *unnecessary* complexity.
Great video, learned some new stuff, thanks!
Thanks for the feedback!
the picture looks like you met the elephant at fosdem ;)
Thing is most extensions need a hosted instance, some providers have no logs access, and debugging things is hell, after using triggers on a project and having to traverse pg logs put many doubts using pg for any other use than db. Interesting video on these extensions though.
Amazing video I Love PostgreSQL
Excellent video, cheers 👍
Thank you!
Wow very informative.
It is mind blowing.
Small suggestion: try not to paster large chunks of text at once.
And if so leave them a bit longer on the screen
Thank you for the feedback, really useful. Will definitely improve the demo part.
Dont forget PostGIS!!!
Great video!
Thank you :)
You just earned a subscriber! 🙌
Great video, thank you. Subscribed!
Thank you so much