Show HN: EdgeDB Cloud and 4.0 with FTS and Auth (edgedb.com)
We've been busy for a while building EdgeDB Cloud and now it's finally here.
EdgeDB Cloud is pretty cool and takes full advantage of our database. You get declarative schema, strict typing throughout, great performance, a query language that's best of GraphQL & SQL, and many many other perks.
The Cloud itself is quite unique because of EdgeDB. Our query language gives you composability - so you can fetch everything for your page or API endpoint in one network request. And our protocol and client libraries give you auto recovery on network errors, automatic transaction retry, built-in transparent connection pooling, and many other benefits.
Check out the blog post where we explain it all. And watch the currently ongoing YouTube Premiere of the launch!
28 comments
[ 3.1 ms ] story [ 86.2 ms ] threadThere are some limitations currently, like that functions can't have insert/update/delete (DML) commands in them, but we'll be working on lifting this limitation in 5.0 (along with possibly allowing recursive functions). And because EdgeQL composes well, you'll get a lot of mileage or our functions once we support DML in them.
Building something equivalent to PL/pgSQL is one of the things that will eventually happen, but unlikely to happen very soon.
EdgeDB's TypeScript query builder gives you the same type safety benefit that Prisma gives you, but its main feature is that it builds EdgeQL for you. And EdgeQL is very, very good for composition and pipelining multiple operations in one single query. You can select multiple unrelated object hierarchies, update / insert them, introspect your schema, all in one query easily.
This is very visible in benchmarks: https://www.edgedb.com/blog/why-orms-are-slow-and-getting-sl...
And we plan to write a post about cloud benchmarks soon to further illustrate this point.
* composability shouldn't be limited for any part of the language. You can shift things around and they'll continue to work. EdgeQL kinda feels like writing Python or JS code.
* performance should be great, and that is made possible by two things: we're building on top if Postgres (basically using it as the engine replacing its frontend) and by writing a sophisticated compiler from EdgeQL to optimized SQL.
* readability -- we always wanted EdgeQL to be quick to learn and master, and on average it takes just a couple of minutes for someone to write their first query, you can try it yourself in your browser here [1]
[1] https://www.edgedb.com/tutorial
My only humble question is whether the lack of a "dynamic" query builder for Python will continue when the TS had it for so long? I understand the point of Python typing not being expressive enough to support this, but it's a language problem and I don't think EdgeDB should be the one trying to solve it. I'd love if I can just write my queries within my business logic directly and iterate without any sort of delays as opposed to writing them somewhere else (creating new files), generating the APIs, trying something, and repeating this whole process when I want to change anything.
We'll try to get Python query builder out of the gate in the next couple of months. It's been requested forever, we'll try to make time for it. You're totally right that it's a missing puzzle piece right now.
On the bright side, codegen works really well. Put your EdgeQL query in an .edgeql file and our tooling will generate you a fully typed function around it. And with the new `if` expression in EdgeDB 4.0 you'll be able to do thing like:
In your Keynote someone talked about ReScript which is new to me, what is the relationship between ReScript and EdgeDB? Is it just a replacement for Typescript?
We invited Gabriel because we think what he's building is pretty cool. It showcases so much about EdgeDB: its type system, data model, query language, composability, introspection, etc.
I'm not a ReScript user myself. What I know is that it's a functional programming language somewhat heavily inspired by OCaml. Their website goes into details [1]
[1] https://rescript-lang.org/
Do you any plans supporting Wasm? (Let’s say, via Wasmer! ;) )
My dream would be making it easy to install native extensions, say a numerical or ML library, to your database, locally or in the cloud. With EdgeDB we can make it especially nice, given that we control all of the tooling and the query language. A wasm extension could theoretically add new storage type, new functions and operators, and EdgeQL would make using it in queries feel good.
Another use case would be allowing you to deploy API handlers compiled into wasm and let EdgeDB manage them for you. Builtin connection pooling + fast connect + keeping them in sync with the version of the schema you just deployed or are deploying would be pretty cool.
We've had some promising early experiments in this area but need some time to do it properly!
EdgeDB seems to know this, which is why a large chunk of this video is devoted to outside users talking about what they're building.
While hobbyists may not be where the money is at, if good they’ll start evangelising at work.
I was looking at Edgedb, and then surrealdb. These db can make a solo devs life so much easier