
Show HN: Announcing the FaunaDB Add-On for Netlify - northstar702
https://www.netlify.com/blog/2019/09/10/announcing-the-faunadb-add-on-for-netlify/
======
abhishektwr
FaunaDB is quite amazing. Someone who have used DynamoDB and Cloud
DataStore/FireStore extensively, I find FaunaDB is a lot more flexible to
build bigger applications with complex data models. Their GraphQL offering is
equally good. It works really well with Lambda. Row-level authorisation and
other security features are out of the box. Only thing, which stops us to
switch to FaunaDB is the lack of search support. Only, if they can stream
document changes to Kinesis/PubSub then it can integrate seamlessly with other
public cloud services including ElasticSearch.

~~~
evanweaver
Thank you! Streaming is coming.

------
steve19
I wish they had an option between free and $45/month. I want to deploy a tiny
client side js app that requires http auth. I would rather netlify than a VPS,
but not at $45.

~~~
nexuist
I'm not sure where you're seeing these numbers?

[https://fauna.com/pricing](https://fauna.com/pricing)

I see free, on demand (which seems to be the middle ground you want), and
$99/mo....oh, I see you're looking at Netlify's pricing, not Fauna's.

Which leads me to ask: why does your project require HTTP Basic Auth? Wouldn't
a HTTPS login not only be more secure but also supported under the free tier?

------
telligent
Hi there! I'm Lewis, a PM at Fauna.

We built this Add-on so that any developer using FaunaDB and Netlify can come
up with an idea and launch it super quickly, by simply focusing on the front-
end.

If you’re a Netlify user who has never heard of FaunaDB and want to add a
database to your app, we’re the only database with a direct Add-on. FaunaDB a
perfect choice for developers who don’t know much about databases, or would
rather not worry about such details :)

Users can now create an account and login to FaunaDB with their Netlify
account credentials, using a new OAuth login option. Databases created via the
Add-on are available for use instantly, and can be managed directly within the
FaunaDB Console.

~~~
vosper
> FaunaDB a perfect choice for developers who don’t know much about databases

And, from the Fauna docs:

> Related documents in FaunaDB are stored within classes (also known as
> collections), which are similar to tables in relational databases, except
> that the different items in the class are not all required to have the same
> fields. Typically, classes correspond to types in your application, for
> example, blog posts, authors, comments, shopping carts, line items, and
> invoices. Creating a class is easy as you don’t have to specify constraints
> or field names.

As someone who's dealing with a long-lived Mongo application, this "you don't
have to think/know anything about databases to get started!" thing might start
off as a feature, but it'll turn into an anchor.

~~~
telligent
Hey @vosper, thanks for your feedback!

To clarify, what we mean by simplicity is making databases as simple to work
with as using an API. An example of this is native GraphQL support within
FaunaDB.

We're continuing to make our database concepts like Collections easier to use
and understand. I've made a note to clarify the blog post you are referencing.

Collections come from a NoSQL approach, and allow users to change what's
stored in data records over time. We see this as a convenient way to store
data, without having to worry about specifying a schema upfront that may
change over time.

~~~
vosper
> without having to worry about specifying a schema upfront that may change
> over time.

Thing is, there's always a schema. Code always expects data to look a
particular way. Whether it's written down and enforced by the DB or not will
have a great influence on your ability to reason about your system and make
changes down the line.

This sounds like the same mistakes of Mongo all over again. Databases that
don't require and enforce schemas trade a degree of early flexibility and
development speed for a future of confusion, hacks and workarounds, and lower
velocity.

Most people who make this tradeoff aren't aware they're making it. The rest of
us use RDBMS.

(I get that you work for the company and I don't expect this comment to change
anything - except hopefully the mind of someone contemplating using a no-
schema database)

~~~
evanweaver
Optional write-time validations are on the roadmap. FaunaDB does enforce
unique constraints via indexes already.

FaunaDB is temporal as well and people don't really enjoy migrating the past,
so it has to be a little different than a traditional RDBMS schema. But
ultimately it will be more flexible as well.

------
intellix
Looked at FDB but was instantly thrown off seeing 180ms to Ireland... What do
these numbers represent? Is that a single ping, read, write or something else?
[https://app.fauna.com/status](https://app.fauna.com/status)

~~~
evanweaver
It's the write transaction latency from that region. Fauna is a global
database and data always commits to multiple global regions for durability.

As you can see, the write latency is pretty consistent regardless of source
region, unlike databases like Mongo that are homed in a single location and
fast from nearby but slower and slower the farther away the client application
is.

~~~
alittletooraph
Mongo addresses this with partitioning and you can distribute partitions which
serve local client applications anywhere. The database as a service for Mongo
supports 66 regions across AWS, Azure, and GCP so write latency (regardless of
where the client application is) doesn't become an issue.

~~~
evanweaver
It's absolutely an issue when multiple applications or users write to the same
data from different locations, or when users move around.

If the application only lives in one place you are paying for the latency to
reach the application from the remote client in the first place, even if the
latency from the app to the database is "fast".

FaunaDB gives you local-latency reads and minimum global write latency from
everywhere.

------
qatanah
Is the article gone or something? all i see is ![]()

~~~
evanweaver
We will look into this...seems like a CDN issue.

