Neon: A serverless open-source alternative to AWS Aurora Postgres
Neon is an open-source, serverless alternative to AWS Aurora Postgres, featuring a scalable architecture with a free tier, local installation requirements, and comprehensive documentation for users and contributors.
Read original articleNeon is an open-source, serverless alternative to AWS Aurora Postgres that separates storage and compute by redistributing data across a cluster of nodes. It features stateless PostgreSQL compute nodes supported by a scalable storage engine. Users can start with the Neon Free Tier to create a serverless Postgres instance and connect via various Postgres clients or an online SQL editor. The architecture includes a Pageserver for scalable storage and Safekeepers for durable storage of Write-Ahead Logs (WAL) from compute nodes. To run Neon locally, users must install dependencies, including Rust, and follow specific commands to start the pageserver and PostgreSQL instances, create tenants, and execute queries. Testing is facilitated through `cargo-nextest`, and integration tests can be run with designated commands. The repository offers comprehensive documentation, including developer guides and blog posts detailing the architecture. For those interested in contributing, guidelines are available in the repository. More information can be found on the Neon GitHub repository.
- Neon is a serverless, open-source alternative to AWS Aurora Postgres.
- It separates storage and compute, utilizing a scalable storage engine.
- Users can start with a free tier and connect through various clients.
- Local installation requires specific dependencies and commands to run.
- Extensive documentation and contribution guidelines are available in the repository.
Related
Our great database migration
Shepherd, an insurance pricing company, migrated from SQLite to Postgres to boost performance and scalability for their pricing engine, "Alchemist." The process involved code changes, adopting Neon database, and optimizing performance post-migration.
Just Use Postgres for Everything
The blog post advocates for using PostgreSQL extensively in tech stacks to simplify development, improve productivity, and reduce complexity. It highlights benefits like scalability, efficiency, and cost-effectiveness, promoting a consolidated approach.
Postgres vs. Pinecone
Postgres and Pinecone differ in performance and cost. Pinecone criticizes Postgres for index issues, while Postgres showcases superior performance with tweaks, specialized indexes, and cost-effectiveness, offering transparency and customization.
Difference between running Postgres for yourself and for others
The post compares self-managed PostgreSQL with managing it for others, focusing on provisioning, backup/restore, HA, and security. It addresses complexities in provisioning, backup strategies, HA setup, and security measures for external users.
PostgREST – Serve a RESTful API from Any Postgres Database
PostgREST creates RESTful APIs from PostgreSQL databases, offering high performance, security via JWT, multiple API versions, self-documentation with OpenAPI, and community support for contributions and sponsorships.
The only surprise I had was that they don't show you any database logs! Turns out I haven't needed this so it's not a big deal, but that's the biggest departure from a "traditional hosted postgres" service.
Aside from that, the only missing feature is the ability to create an Organization rather than hosting projects in a personally-affiliated account, but this is apparently coming soon.
The branching features work really well and I've used it a few times now to debug issues and test migrations without impacting production. I haven't set up the per-pull-request-preview-environment stuff yet but I plan to and I like that Neon makes it easy.
EDIT: oh, the one other annoyance is that last time I checked, it was not possible to create a read-only replica in a different region than the primary compute node. Or something like that, I'm still not sure, and multi-region read replicas are not particularly necessary for me right now (Devlog still in early alpha, not a lot of customers) so I just moved on. Issue tracked here https://github.com/neondatabase/neon/issues/4178
One really hacky application I saw was a pg search and show results without the user having to press a button. Here: https://next-ai-news.vercel.app/search?q=
Percona has a good walkthrough on how to spin up neondatabase via plain docker containers, which is a good way of pulling the system apart into logical units (storage broker, safekeeper, pageserver), and branching from an existing tenant/timeline:
https://www.percona.com/blog/using-docker-to-deploy-neon-ser...
On the tech itself, it's a shame nothing like this exists for MySQL, but not surprising.
Managing databases locally and in CI isn’t much fun when dealing with migrations, so the fact you can trivially work with a copy in a branch, or deploy preview builds in PRs with their own DB branch, is a great innovation.
I mean, sure you could slap something similar together with some scripts, but having it out of the box is good dev ex.
Is it compatible with postgresql extensions? (Do most extension live in the compute layer?)
Neon: A serverless open-source alternative to Amazon Aurora PostgreSQL Compatible.
Any reviews?
Related
Our great database migration
Shepherd, an insurance pricing company, migrated from SQLite to Postgres to boost performance and scalability for their pricing engine, "Alchemist." The process involved code changes, adopting Neon database, and optimizing performance post-migration.
Just Use Postgres for Everything
The blog post advocates for using PostgreSQL extensively in tech stacks to simplify development, improve productivity, and reduce complexity. It highlights benefits like scalability, efficiency, and cost-effectiveness, promoting a consolidated approach.
Postgres vs. Pinecone
Postgres and Pinecone differ in performance and cost. Pinecone criticizes Postgres for index issues, while Postgres showcases superior performance with tweaks, specialized indexes, and cost-effectiveness, offering transparency and customization.
Difference between running Postgres for yourself and for others
The post compares self-managed PostgreSQL with managing it for others, focusing on provisioning, backup/restore, HA, and security. It addresses complexities in provisioning, backup strategies, HA setup, and security measures for external users.
PostgREST – Serve a RESTful API from Any Postgres Database
PostgREST creates RESTful APIs from PostgreSQL databases, offering high performance, security via JWT, multiple API versions, self-documentation with OpenAPI, and community support for contributions and sponsorships.