- Evoluiu lentamente por 25 anos, sem funding de VC nem equipe de DevRel
- Ingres (UC Berkeley, 1970~1985) —> Postgres95 —> PostgreSQL
- A primeira linguagem nem era SQL, e sim QUEL. O suporte a SQL foi adicionado em 1995, quando o Postgres95 foi lançado
- Em 1996, com o lançamento do PostgreSQL 6.0, a equipe de desenvolvimento foi formada e o projeto saiu do meio acadêmico
- A partir de 2000, o Postgres começou a crescer ao introduzir diversos recursos
- Write-Ahead-Log (WAL), Outer JOIN, TOAST, drop column, IPv6,..
- Em 2005, começou a ser visto como um banco de dados mais maduro e bastante estável
- Suporte rico a transações, ampla compatibilidade com SQL e melhorias em Write-Ahead-Log (WAL) e VACUUM
- Criação concorrente de índices, servidores warm standby, tipos de dados Arrays/UUID/ENUM/XML, commit em duas fases etc.
- Em 2009, a partir do Postgres 8.4, passaram a ser suportadas funções de janela e CTE
- Foi nessa época que o Postgres começou a influenciar amplamente o ecossistema de dados
- Graças à base de código sólida e à licença, muitas empresas adotaram o Postgres e começaram a criar forks
- Hoje quase nenhum desses forks permanece: a Aster Data foi adquirida pela Teradata, a Truviso pela Cisco, a Netezza pela IBM...
- Muitos forks surgiram, mas o Postgres continuou avançando
- O Postgres começou a ficar legal de verdade com os lançamentos do Postgres 9.0 e 9.1, em 2010
- suporte a listen/notify (pub-sub para o banco de dados)
- hstore (tipo de dados chave/valor)
- upgrades fáceis com pg_upgrade
- lançamento dos índices GIN/GiST, indo além do índice B-Tree padrão
- Extensões sempre fizeram parte do Postgres, mas refatorações tornaram seu uso mais fácil
- Foram desenvolvidos wrappers de dados externos capazes de conectar diferentes bancos Postgres
- Em 2012, veio a introdução do JSON
- ascensão dos bancos NoSQL (Mongo & Couchbase)
- desenvolvedores começaram a querer outras formas de usar seus dados
- no início o suporte era meio improvisado, e só foi ficar realmente adequado dois anos depois. Ainda assim, foi suficiente para chamar a atenção
- com a ascensão do Heroku, o Postgres foi escolhido como banco padrão
- Em 2014, a partir do Postgres 9.4, o suporte de verdade a JSON começou com o tipo de dados JSONB
- como representação binária de JSON, ficou fácil indexar com índices GIN
- JSONB ainda é um dos tipos de dados que mais surpreende as pessoas quando ouvem falar dele
- O logical decoding criou a base para facilitar CDC (captura de dados de mudança) nos anos seguintes
- Por volta do 9.3, a Amazon anunciou no Re:Invent o suporte a PostgreSQL no RDS
- o autor participou do re:Invent várias vezes, e diz que foi a única apresentação em que viu o público aplaudir de pé
- Em 2016, nas versões 9.5, 9.6 e 10
- foram introduzidos Row Level Security, Logical Replication, Table Partitioning etc.
- esses recursos vieram de contribuições de colaboradores individuais
- Então, quando foi?
- na minha opinião, sem a combinação de Heroku e JSON, os hyperscalers não teriam adicionado suporte
- mas sem a cadência consistente de releases e as melhorias contínuas de desempenho e funcionalidades com foco em qualidade, a oportunidade não teria existido
11 comentários
Ah, Pub/Sub para banco de dados é interessante.
Binggrae Janggrae Postgrae!
Mas o supabase é mais legal ainda
Por favor, permitam alterar a posição das colunas.
Relato de erro de digitação:
라이선스 벅분에->라이선스 덕분에Maaassa! É isso aí!!!
Dá até a impressão de ser um exemplo clássico de OSS em um ciclo virtuoso.
Como o LK-99, há um romantismo construído ao longo de décadas de acúmulo...
Romantismo aprovado....
Força, Postgres!
Você é demais, Postgres.