TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Architecture Decisions in Neon

48 pointsby nikitaalmost 3 years ago

4 comments

infogulchalmost 3 years ago
Splitting the architecture across compute&#x2F;storage and then pageserver&#x2F;walserver seems like a great design decision because the pieces fit snugly onto the underlying layers of cloud services. The design is general enough that it could work for other block-device-based databases (~all of them) so you could put a SQLite or MySQL compute layer on top of the storage layer instead of postgres. Discussion: <a href="https:&#x2F;&#x2F;github.com&#x2F;neondatabase&#x2F;neon&#x2F;discussions&#x2F;1958" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;neondatabase&#x2F;neon&#x2F;discussions&#x2F;1958</a><p>The fact that they&#x27;re targeting vanilla postgres is also intriuging because that means it will be a lot easier to integrate with other interesting PgSQL-based technologies; EdgeDB in particular seems like it would be a pretty great fit.
评论 #32030939 未加载
fishtockosalmost 3 years ago
&gt; In Neon, incoming WAL is processed as it arrives, and indexed and buffered in memory. When the buffer fills up, it is written to a new file<p>This sounds cool, but what happens if the server crashes? How do you prevent losing the buffered WAL? Do you have WAL of WAL or something?
dfeealmost 3 years ago
Cool to see this (I’d somehow missed the early access link until last night).<p>Your storage strategy makes sense - building from first principles. To be honest, I figured you’d <i>not</i> done that though, and I imagine this makes portability a bit harder.<p>I’m eager to play with the service, but I wonder how local access patterns (e.g. dev workflows) differ - upon the right abstraction it shouldn’t really matter, right? I.e. a conn is a conn and a cursor is a cursor - the storage is opaque to the client. But does this somehow fall over with transactions and connection limits?
评论 #32030547 未加载
nikitaalmost 3 years ago
Heikki was behind major decision and has done a lot of prototyping. Happy to add more color