Hacker Newsnew | past | comments | ask | show | jobs | submit | freels's commentslogin

Thanks for the shoutout. At some point if you find yourself with some spare time you can check out our new FQL version. It's closer to JS in terms of syntax now, but still a small, relatively functional language.


One might say uncomfortably slow.


The NoSQL movement overstated how important the A in CAP was. Relatively few systems need _all_ nodes to be available, compared to those that benefit from strong consistency, especially those that live primarily in datacenters/the cloud.

But this strict notion of Availability (all nodes must be available), was conflated with being available at all, leading to CP systems being disfavored.

When we introduced Fauna, it took quite some time (and a Jepsen report) to convince others that building a CP system without exotic hardware was possible, and that in practice, access to multi-region strongly consistent replication is a far better availability experience than the typical single region deployment topology which is still most common today.


I'm clearly biased, but at least in my experience, while this is technically true, you're still dealing with XML (and now JSON) shoehorned into a tuple-based context. In other words, there is still a (lossy) translation layer, it just happens to be in the RDBMS rather than in-app.

Fauna's advantage here is that this way of structuring queries is deeply integrated with the language (and underlying wire protocol) itself. For example, Fauna's response format supports returning independently iterable result sets (supported by cursor-based pagination under the hood), allowing you to lazily populate the result graph in your app based on further user interaction.


> In other words, there is still a (lossy) translation layer, it just happens to be in the RDBMS rather than in-app.

It's not lossy if your application can guarantee a json <-> datatype roundtrip and the json is validated with jsonschema (generated by your application)

In Rust it's something like this

https://serde.rs/ to do the data type <-> json mapping

https://docs.rs/schemars/latest/schemars/ to generate jsonschema from your types

https://github.com/supabase/pg_jsonschema to validate jsonschema in your database (postgres). with this setup it's interesting (but not required) to also use https://docs.rs/jsonschema/latest/jsonschema/ to validate the schema in your application


If your current stack is working for you, that's great. The main advantages of Fauna vs say MySQL are going to be:

- Fauna is distributed and multi-region and therefore more resilient to hardware or regional outages (for example we barely noticed the last AWS us-east outage, except for the fact that it affected customer traffic to Fauna).

- You gain a lot of flexibility in terms of where and how you deploy your compute layer. Fauna works very well in concert with serverless platforms or edge-based compute like Cloudflare Workers. It's also possible to connect directly from your client/front-end, using Fauna to enforce end-user permissions.

- Even if you know SQL, it's worth checking out FQL. Simple queries in SQL are also easy in FQL, but more importantly, FQL gives you much greater control over the shape your query result, meaning you don't need an ORM to reconstruct your object graph. If you have ever used GraphQL, the experience is similar. Or you can see a few examples and comparisons with SQL on our FQL product page: https://fauna.com/fql


Getting the best of both worlds is what we're trying to achieve with Fauna, at least for OLTP use-cases. I'd be curious to hear what challenges with you ran into with other NoSQL databases, though.


While, making it easy (and possible in the first place) to write procedural code directly in a transaction is a core part of FQL's design, it is certainly possible to implement safe read-modify-write via FQL, it's just less efficient.


They don’t bother and just use search: https://futurism.com/the-byte/gen-z-kids-file-systems


Wasn't that the point of Google Desktop? Irony is now that when speaking of Google OS search: I can't just search on Android, whereas iOS does it better. I miss that little context-aware Search icon on the menu bar in early Android. You could press it on the home screen to search the whole device, or in an app to search only that app, for eg. Gmail.


The tone of that article is so condescending. "Students act like they have a robot who will fetch them everything they want on demand" Yes! That's the point of a computer. Your machine should do work for you.


That's not actually the point of a computer. The point of computers was to accelerate and augment, not valet. Perhaps one day they will be smart enough to do that, but right now they are still just bicycles for the mind (as per an old computer ad).

Knowing how to store, organise and retrieve information, regardless of what system is used (including computers, file cabinets and archive rooms) is a skill that doesn't just magically appear in your brain, you have to actually observe, trial or classically learn about it to make use of it. It used to be through day-to-day tasks and a growth in responsibilities when growing up that people got that skill semi-automatically, but that is no longer the case.


There’s no catch. No database is going to work for every use case, but we’ve built FaunaDB to be general purpose, and suitable for many of them.


Fauna, Inc. | Remote | Full-Time Opportunities | https://fauna.com/company

At Fauna, we’re building the serverless database for modern apps built on JAMstack. If you want to work on systems and challenges related to serverless databases, GraphQL, and JAMstack, Fauna is hiring!

All Positions: https://fauna.com/careers

Highlighted positions:

VP of Engineering - US REMOTE: https://hire.withgoogle.com/public/jobs/faunacom/view/P_AAAA...

Software Engineers-Scala/Java - REMOTE: https://hire.withgoogle.com/public/jobs/faunacom/view/P_AAAA...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: