
Apply HN: Brodlist – a new type of database - david927
Brodlist (http:&#x2F;&#x2F;brodlist.com) is new ground-breaking database that aims to replace the relational database.<p>Its features include Schema-on-Need, so that you don&#x27;t have to model your database, just start using it.  History is built in.  You can query the current state of your data or how it looked a week or month ago just by specifying &#x27;when&#x27; as part of the query.  It&#x27;s performant on commodity hardware and scales horizontally, which is why we can offer it for next-to-nothing.  Because it&#x27;s offered as a REST-ful service where the language is the interface, your API is built-in. What&#x27;s more, the authorization is specified as queries, so you can easily lock down any set of rows or columns for any user.<p>Finally, it uses a new query language that is much simpler.  To get the list of employee equipment in the Sales Department would be queried like this:
Employee.Equipment : Employee.Department = &quot;Sales&quot;<p>The same result in SQL requires this query:
SELECT q.* FROM Equipment q INNER JOIN EmployeeEquipment ee ON ee.EquipmentKey = q.ID INNER JOIN Employee e ON ee.EmployeeKey = e.ID INNER JOIN EmployeeDepartment ed ON ed.EmployeeKey = e.ID INNER JOIN Department d ON d.ID = ed.DepartmentKey AND d.Name = &#x27;Sales&#x27;<p>SQL and the relational database has been around for 50 years.  It&#x27;s finally met its match.
======
tyre
1) Describe the team and why they're qualified to build a distributed database
from the ground up.

2) What is the advantage compared with Postgres + Postgrest[1]?
Considerations:

    
    
      a) Extensibility (e.g. PostGIS)
      b) Hosting (for large enterprises, cloud database may be a non-starter.)
      c) Stability
      d) Community
      e) Documentation
      f) Security
    

Databases are scary.[2] As a developer, you would have to convince me that
nothing would ever break since I damn sure am unqualified to be monkeying
around in that code. As a CEO, you would have to convince me nothing would
ever go down and this provides a significant advantage over Postgres. As a
technical co-founder, you would have to convince me that you aren't going
anywhere and will be able to build a substantial community.

[1]:
[https://github.com/begriffs/postgrest](https://github.com/begriffs/postgrest)
[2]: That isn't a reason not to do it.

~~~
davemel37
I find it interesting that your first question is about why the founders are
the right ones to build this and the second is about how it's different than
existing solutions.

Usually the idea gets discussed, than the team and competition. I think it is
telling that the top comment on this post doesn't need to validate the idea
and demand. That alone should count for considering in the YC Fellowship.

~~~
spotman
A distinction without a difference. Both are things that investors would care
about.

Sorry but if this is the first experience the team has with building or
maintaining data stores then I would definitely not invest. There is so much
to learn from experience.

Having said that, I imagine it's not, so it should be an easy question to
answer one would hope.

~~~
davemel37
Of course the questions are important. My only point is that the idea itself
seems to resonate really well with the voters on HN, since the questions jump
to execution related questions and bypass idea validation questions.

> first experience the team has with building or maintaining data stores then
> I would definitely not invest.

To that point, while admittedly I don't know enough about building and
maintaining data stores, I think it is a mistake to pass on founders because
they lack the experience needed to know what they are up against. Often it is
that very quality of being too naive to know what they are up against that
allows them to take on a massive project and completely change the world or
disrupt an industry.

I think the questions are fair and important to answer, I just think that
great things are done all the time by people who have no clue what they are
doing or up against going into the challenge...as long as they have the
perseverance and resourcefulness to deal with whatever gets thrown at them, I
would bet on them.

------
extrapickles
Since this is a distributed database, there are a few questions I have:

1\. How does it handle network failures where the nodes have a mixed ability
to communicate to each other? (Server A can talk to B, but not C. C can talk
to B but not A)

2\. How does it manage hosts with widely differing clocks?

If these haven't been developed/tested yet, how do you plan on solving those
issues?

~~~
david927
Great questions. Thank you!

Right now it's distributed on the same host and your guess is right, that
hasn't been developed yet. The replication is mirrored with a central dispatch
so that if a node isn't available , the other two provide a quorum. Widely
differing clocks would be an issue and will require a lot of thought. I've
already appealed for help to some very smart people I know and might have to
do so again.

~~~
davemel37
> I've already appealed for help to some very smart people I know and might
> have to do so again.

Without knowing anything about this industry, technology or these founders,
this phrase alone gives me enough confidence in their ability to execute on
this or anything else they commit to.

~~~
jerguismi
Was that sarcasm? To me it looks like these guys don't have an idea what they
are doing. They advertise features which as well might be close to impossible.
And their strategy is to appeal for experts? If they can deliver this, they
should have quite good picture themselves how to deliver.

~~~
david927
The feature set was backed-into, in the sense that the technology came first
and it was found it could and does support these features. We didn't make a
shopping list of features and are now declaring we want to do that. Our
research found a shopping list of features.

I'm not saying we have to appeal to experts, I'm saying we want to. We've come
this far, out-of-sync clocks on different hosts is certainly not going to stop
us. But I mentioned asking experts because we've done it before and we will
continue to do it again along the way, because one of the biggest mistakes as
a founder that you can make is to think that you have all the answers.

Finding smart people and trusting them is a separate skill and it's one to say
that I'm proud that we have.

------
minimaxir
Your product pitch is very similar to the product pitch for Neo4j, a graph
database which already has significant adoption:
[http://neo4j.com/product/](http://neo4j.com/product/)

How does your database differ from graph databases?

~~~
david927
Neo4j is great for what it does but if you look closely at the offering and
read through the feature set (look particularly at the query language, for
example), you can see the differences.

This is a relational database and is chasing that market; its competitors are
MySQL, Postgres, etc.

------
asimuvPR
1) What language is the database written in?

2) What are the key benefits of designing a new DSL for this database?

3) Given that it uses a built-in API, will security audits results be made
public?

4) It seems to save "snapshots" of different moments in time. How does that
affect database size? Does each snapshot act as its own database instance or
is it just a data backup?

5) How do you plan to introduce and train programmers into using various
different concepts at once? What kind of strategy do you plan to leverage for
mind share?

6) You mention replacing the relation database. Explain how this is better
than Microsoft's SQL Server. [Comparing a paid product against another rather
than to a free one.]

7) Will this be offered as a stand alone product or as a service?

8) What other databases (or systems with similar complexities) has the team
worked on / built ?

9) What makes this a must have standout product from other databases out
there?

~~~
david927
1) C++ 2) It's clearer and allows for more powerful constructs (even if
they're not being talked about yet). 3) Yes. 4) It depends on the number of
writes but you can adjust the level of history to the level you want. 5) Great
question. I'll have to circle back to this later. 6) The feature list above
beats SQL Sever on each point. 7) Initially as a service but that could
change. 8) The research stems from the Kayia programming language (kayia.org).
9) The feature set for the price. It solves a lot of back-end needs and yet is
much cheaper.

~~~
asimuvPR
Do you have any documentation regarding the DSL? I'm interested in looking
into this. Feel free to email me (check profile) with more information.

~~~
david927
I apologize for the lack of information on the site. I'll add a lot more to
the site soon including a REPL. You can find something for now at kayia.org.

Thank you so much for your interest!

~~~
asimuvPR
I will look into it, thank you.

------
dangoor
How does this compare to Datomic? The model seems similar.

~~~
david927
Datomic is awesome and I'm a huge Rich Hickey fan.

The language is different and I believe better, and having history/versioning
of the data baked-in is a big plus in our column. I could make a deeper
comparison if you'd like.

~~~
pbh101
I haven't used Datomic but I thought its entire premise is that the data is
immutable and thus history/versioning was baked in. Am I missing something?

~~~
ibdknox
That is indeed the premise of Datomic, so I'm not sure how that would be a
differentiator in this case. Beyond that, it's hard to make any statements on
the difference between the query languages without more examples.

~~~
david927
Baked-in as part of the language; the query language is where it stands out.
I'll get you examples of that.

~~~
ibdknox
FWIW, You can get transaction-time and the associated wall clock time in
datomic's query language as well, though admittedly I can imagine cleaner ways
of doing it :)

[http://stackoverflow.com/questions/11025434/in-datomic-
how-d...](http://stackoverflow.com/questions/11025434/in-datomic-how-do-i-get-
a-timeline-view-of-the-changes-made-to-the-values-of-a)

~~~
david927
Cool; I didn't know that. Thanks, Chris.

I'm sorry we missed you at coffee on Saturday. The next one is in two months
-- hope to see you then if you have time.

------
llovan
Sounds really interesting.

When will it be available for testing and how will it be licensed, open
source?

~~~
david927
Thanks. At its current pace it will be available for testing in four to six
months. I'm not sure yet about open source but I'm very open to it. Licensing
is still up in the air.

------
michaelmior
Could you explain what you mean by "Schema-On-Need"? I can just get start
using a database with no schema, but I assume Schema-on-Need is different from
that.

~~~
david927
In the example above, if Employees are only in one Department and suddenly you
have the situation where an employee is in more than one department, you don't
need to create a link table to model that. In other words, you don't need to
think, "Is this a one-to-one, one-to-many, or many-to-many relationship?"
before you start, it can just emerge as you go.

~~~
michaelmior
Sounds like new words to describe what graph databases do. Although I see you
answered another question already comparing to Neo4J.

------
vr3690
So are you just providing an API and the database will be stored on your
server? Or will users install it on their own hardware?

~~~
david927
Initially we're providing an API but the idea of open sourcing it is very much
on the table, which of course would allow users to install it on their own
hardware.

~~~
vr3690
Correct me if I am wrong, but won't latency be an issue if connecting to a DB
via an API? I would imagine that would be a deal breaker for most (especially
for me).

~~~
david927
Great question! This is where other DaaS's have struggled and this is where we
shine. The authorization model is robust enough that you can obviate a lot of
the business-logic layer.

Building a sports site and only friends of team members or the team members
themselves can message each other? Build it in your authorization model. The
UI will only see appropriate recipients and only be able to send messages to
them. In other words, a lot of your architecture could become UI-DB direct and
only a portion going through a business layer.

------
catnaroek
(0) Regarding Schema-on-Need, let's assume the following scenario: When I
begin developing an application, I'm not quite sure what my data model should
be, so I insert data into the database without defining a schema. A few months
later, I have a clearer idea of the data model I want, but my existing data
set doesn't fit exactly in this model. Do you provide some way to “fit my
database to a schema”?

(1) Could you provide a proper specification of Brodlist's query language?
Your example is too small to convince me that Brodilist's query language can
express everything SQL can express.

(2) Could you provide an example of a nontrivial application (like a small ERP
module) that illustrates how Brodlist is more convenient to use than a
traditional SQL DBMS?

~~~
david927
(0) The idea is not to start without any schema but to start with one and then
let it develop. In the example above, if Employees are only in one department
and suddenly you have the situation where an employee is in more than one
department, you don't need to create a link table to model that. In other
words, you don't need to think, "Is this a one-to-one, one-to-many, or many-
to-many relationship?" before you start, it can just emerge as you go.

(1) You can find more at Kayia.org but more will be posted on the site soon.

(2) A nontrivial application example is not available just yet and I agree
with you that it would a great place to examine its trade-offs. The next
several months will be quite busy but if you could please check in after that
and I think we can eventually get you an answer you'll be quite pleased with.

~~~
catnaroek
> In other words, you don't need to think, "Is this a one-to-one, one-to-many,
> or many-to-many relationship?" before you start,

So, which is it: do I begin with a schema or not? If I don't need to think
about the cardinality of relationships, then I don't have a schema. (My
definition of “schema” is “a DBMS-enforced description of the logical
structure of a database”. If I don't have to think about it, how can the DBMS
enforce it?)

> You can find more at Kayia.org

The syntax is properly specified, but the semantics is not. Also, I keep
getting lots of JavaScript errors when I try to use your website.

~~~
david927
If you only want there to be one department per employee, you can constrain
that relationship and the database enforces it. When an additional department
is attempted to be added for an employee, it won't be allowed. If you have a
list of Films, their title, release date and director, and you don't want
additional columns to be allowed to be added, you can set that constraint as
well.

Let's say now you find out that one film has two directors (a change in
relationship cardinality). If you have not constrained it, the default is to
allow that to happen.

You have schema. The default, though, is to let the data tell you what it is
rather than the other way around.

> Kayia.org _The syntax is properly specified, but the semantics is not. Also,
> I keep getting lots of JavaScript errors when I try to use your website._

There's also a lot of missing information. My apologies; fixes are coming. We
didn't plan to submit this to Apply HN -- the opportunity just jumped and so
did we. We should have waited and fixed those things and then submitted.
Again, apologies, changes are coming.

------
asakurasol
Sounds neat!

What's the performance tradeoff, if any?

How far along development is it? Beta? Production ready?

~~~
david927
Thank you so much!

I don't have direct competitive benchmarks but it reads and writes at around
620k/qps.

It's in alpha right now at about 80% of completion.

~~~
ibdknox
You have symmetric read and write rates? That's pretty odd. Also if you are
writing at that rate, presumably those writes aren't persisted?

EDIT: That's also a rate of 1.6us per query. I've never heard of a JSON/REST
stack that could take in and return results in that period of time. Are you
doing something special to accomplish that?

~~~
david927
I couldn't remember the write speed but it's about 80% of the read speed. The
writes are persisted. The qps rates are for individual look-ups and do not
include any HTTP latency, of course.

------
hluska
Good evening...

I have a couple of general statements and questions.

1.) Good job on getting this far and congrats on making it to the first page.
This is the first 'apply HN' that I've seen! :)

2.) You have a neat idea, so I did some research. I found an Indiegogo
campaign backed up by a few Reddit posts, some HN posts, etc. How did your
project (the semantic search engine) go? It sounds similar to this pitch -
does the technology for this project stem from that project? What have you
learned?

3.) How do you pronounce Brodlist? Is it broad list? Or maybe Bro D. List?

~~~
david927
1) Thanks!

2) No one was interested in the technology as powering a semantic web search
engine. I think Fred Wilson said something to the effect of, "Who would want
this?"

3) It's pronounced 'broad list'.

------
koolba
What's your business model?

Will you be open sourcing the backend server?

Why would anyone want to us this over the plethora of other choices for a
persistent storage layer?

Honestly, your example syntax doesn't look that appealing. I'm not saying SQL
doesn't have its warts but if you're going to replace it, doing it at the
language level integrated with a 4GL makes more sense (ex: like how rethinkdb
rolls queries).

Who's the target user for a new system like this, why would they use it, and
why would they pay you?

~~~
david927
_What 's your business model?_

Currently, hosting fees. We pay 3€/month and charge 10€ per 10GB instance.
That could change and expand, though.

 _Will you be open sourcing the backend server?_

Not initially but I'm very open to the idea. I think it would remedy a lot of
the concerns voiced so far in this thread.

 _Why would anyone want to us this over the plethora of other choices for a
persistent storage layer?_

Someone else above wrote, "Everyone wants a faster, lighter, more energy
efficient, and reliable car, am I right?" indicating that everyone would want
it but doubting that it can launch. If you're using MySQL, Postgres or SQL
Server as your database right now, you would be hurting your project to not
change. To pick just two features, Schema-on-Need allows you to extend and
expand according to the data, not your pre-conceived notion of how the data is
structured, and the query language, which leads me to the next question:

 _Honestly, your example syntax doesn 't look that appealing._

Maybe, to you. Here's the thing I'd like you to consider: it's not about you.
The majority of users that we've talked to who don't know SQL find it easier
to work with. The bigger reason still is that it maps nicely to BI tools. The
key here is that we need to open up data access to more non-experts.

 _Who 's the target user for a new system like this, why would they use it,
and why would they pay you?_

Target user: SME, startup currently using a relational database

Why would they use it: "Everyone wants a faster, lighter, more energy
efficient, and reliable car, am I right?" (The longer answer is in that same
paragraph above.)

Why would they pay: Because it pays. It gives them the features they want and
at the same time saves them money. It can cost a startup several thousand
every month to run a SQL Server Azure instance, for example, that would cost
less than 50 with Brodlist, with more features.

------
pjlegato
Marketing question: How do you plan to acquire customers? What channels will
you use to get the word out?

There are already dozens of very actively used databases out there. Some of
them have track records that are decades long. There are dozens more new
entrants into the market every year.

How, in a marketing sense (not a technical sense) will you compete with them
to get the word out and convince people that they should go with your solution
instead of another?

~~~
david927
Thanks for the great question.

 _How do you plan to acquire customers? What channels will you use to get the
word out?_

Even though we're not officially in beta, we already have a customer we're
working with and we've been curating a list of prospects for our beta who have
a high-degree of both interest and pain (usually due to the amount they're
paying every month, but also due to managing complexity). We'll work with them
first, rather than a big launch event, and slowly start to market to other
customers, mainly newly forming start-ups at first. (Which is another reason
why a YC Fellowship could be very useful to us.) This market is highly
reputation-based, which means word-of-mouth is more powerful than other
markets. Our market research tells us that based on the feature set specified,
prospects would not only find it compelling enough to evaluate but they said
if it matches or exceeds expectations, they would be willing to tell others.
Our channels for this initial market are mainly direct: talking to directly to
companies in accelerators and incubators, meetups for startups, etc.

 _There are already dozens of very actively used databases out there. Some of
them have track records that are decades long. There are dozens more new
entrants into the market every year. How, in a marketing sense (not a
technical sense) will you compete with them to get the word out and convince
people that they should go with your solution instead of another?_

We have things easier and harder than a normal product. With an app you can
have a harder time clarify your offering but an easier time getting adoption.
It's the opposite for us. To be embraced and see high rates of adoption, we
have to be more than fractionally better than others in our segment. We have
to be so much better that we exceed the risk costs of switching (or adopting)
new technology and the risk of relying on an initially small firm. So far, our
market research says that when we state our offering, our feature set, the
value is usually quickly perceived. Someone in this thread referred to us as
aiming to be the Tesla of databases -- that's it. But we have to pair that
with immaculate execution.

We're applying to the YC fellowship to give us the best possible odds for that
type of execution (as well as potentially increase our pool of first
customers).

------
hellcow
What programming language is it built in?

~~~
david927
Not sure. Don't know. C++.

~~~
spotman
Can you elaborate on this. In another comment you said:

> "It's in alpha right now at about 80% of completion."

confused but curious thanks!

~~~
david927
The comment was initally three questions and was edited down to one. It's 100%
written in C++. Sorry for the confusion.

------
pjlegato
How is this different than Mongo with a little query language DSL on top?

~~~
david927
If you want to look at it that way, I won't stop you, but it's really not a
popular comparison.

Brodlist is a relational database and the query language is both quite
powerful and, for some, simpler than SQL.

~~~
pjlegato
I don't want to look at it in any particular way.

I was asking for clarification, to see whether I understand the features
correctly, and to determine what customers get by using your product.

So the question remains: what does the customer get beyond using, say, Mongo?
You say it's a relational database, but the Schema-On-Need feature sounds
awfully NoSQLish. What's the point of using a fixed schema at all if it simply
creates new fields on demand whenever you try to insert a nonexistent field?
Why not just use Mongo in that case?

Having a new query language that some people like is nice, but how do you plan
to build a company around that?

Why is it different or better than the hundreds of other query languages out
there?

~~~
david927
Thanks for getting back to me -- to be honest, the question as it stood was
confusing for me. Ok, I see what you're asking now and I apologize for not
asking for more clarification. It's a really good question as are the
additional questions here, so let me get to it.

Do you remember when DropBox was announced on HN? One of the top responses
was, "1\. For a Linux user, you can already build such a system yourself quite
trivially by getting an FTP account, mounting it locally with curlftpfs, and
then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP
account could be accessed through built-in software."

MongoDB, like most NoSQL stores, is hard to maintain, complex to query. To
make the same query in the example above may be easy for you but it's not easy
for most. You might think, therefore, that you're not the target market. I
want to convince you you're wrong. You're going to love this.

First, as you know Schema-On-Need is not just about adding fields on demand
but also about changing the mapping cardinality on demand, and then being able
to query that in a clear and simple way. That's one of the big changes this
query language brings. If you are maintaining a list of Films, you'd be
forgiven for expecting only one Director per film, but "Delicatessen" a 1991
French film has two: Jean-Pierre Jeunet and Marc Caro. If you query Film :
Director.Name = "Jean-Pierre Jeunet" you'll get that and "Amelie" for example.
You'll get all films where Jean-Pierre Jeunet was one of the directors. But if
you want only films which were directed by both Jean-Pierre Jeunet and Marc
Caro, you would say Film : Director.Name ^=^ ("Jean-Pierre Jeunet","Marc
Caro"). Variations of that same operator will give you either one of those
directors or films where directors are both but can be others.

The query language also maps very nicely to be used in a BI tool. I'll try to
get some examples of that to you, but I think that reason alone is
extraordinarily compelling.

The final reason why I think you'll come to love Brodlist will be when you use
it. I'm going to make one more analogy if you promise not to shoot me for it.
When Google came along, it was just another search engine among hundreds. And
explaining the Page Rank algorithm didn't convince many people. But that
changed when it was used and the hundreds of other search engines dissipated.
My point is simply that hundreds of competitors can reflect not that it's
solved, but possibly the opposite: that it's still unsolved. And the other
point is that I can talk about it for a long time but what I'm looking forward
to most is the chance to prove it to you.

------
vs2370
have you looked at cockroachDB ?

~~~
david927
Yes, thanks. There's some overlap but I think the Schema-on-Need and new query
language are two places, for example, where it strongly differs.

------
maxpert
Another hoax?

~~~
dang
This comment breaks the rules for Apply HN threads:
[https://news.ycombinator.com/item?id=11440627](https://news.ycombinator.com/item?id=11440627).

Please don't do that here, or really anywhere on HN.

------
ioquatix
Performant is not a word :)

~~~
smt88
Much like the word "database" itself wasn't a word until 1962.

No word "is a word" until somebody makes it up. Then it spends some time as a
word that people use that isn't in the dictionary. Then it's added to a
dictionary.

If you're going to be pedantic, at least choose words that aren't in
widespread use and/or have a valid alternative.

