Endatabas

The Map

2

1

3

4

5

6

wat?

Ethos

Business

Product

Internals

Roadmap

What is Endatabas?

1

wat?

Endatabas is...

  • A database startup, in a land where — and age when — the first rule of database startups is "don't"
  • Sells Open Source
  • Based on papers from 1970, 1974, 1980...
  • Doubles down on SQL, a language everyone ... loves?
  • Written in Common Lisp, despite all advice to the contrary

1980

1990

wat.

Ethos

2

(Advance warning: these are all about life, business, technology, and breakfast.)

Pain
is

Bad.

Honesty
is
Good.

Safety
is
Good.

Commodity
Thinking.

commodity

  1. an economic good
  2. something useful or valued, convenience, advantage
  3. a good or service whose wide availability ...
  4. subject to ready exchange or exploitation
  5. obsolete : quantity, lot

com-modus

  1. comfortable, commodious, suitable, useful, convenient, becoming
  2. opportune, timely, tidy
  3. pleasant, friendly

Commodities

Immutable
by
Default.

Empowering
is

Good.

Plastic
is
Powerful.

Design
should
Disappear.

Building
should be

Joyful.

Have
Fun.
 

Business

3

Third Wave Commercial Open Source

1st Wave:

shrink wrap

2nd Wave:

open core

(also dual-licensing, but let's not

worry about that right now)

3rd Wave:

SaaS, mostly

Commercial

Community

Control

Central

Control

Altruistic

endb

Proton

Minio

Neon

Metabase

Firefox

Cassandra

Spark

Arrow

Debian

Emacs

Clojure

3WCO = Silly?

It may seem naïve to assume we can make money building a SaaS database (DBaaS) in a world of Amazons, Googles, and Microsofts ... but there's big money thrown at much less adventurous products.

$30 million, eh

What we're hearing from CTOs

"I don't want to babysit a database."

 

"If you can give me a developer back, your DB is worth at least $100,000 / yr"

 

"Just solve a small, boring problem ... audits, reconciliation, ML model replay ..."

Product

4

Immutable Databases

A still more glorious dawn is ... uh, dawning.

What endb is not

  • Blockchain ... anything
  • Trustless, proof-of-something
  • "Git for data" (branching, merging)
  • Event Sourcing
  • A new, disruptive query language
  • NoSQL
  • Graph-First

Endatabas aspires to be...?

Create a Commodity

(Caveat: Still plenty of work to do before we achieve this = why the repo isn't open yet.)

Safety, Honesty

immutable

hey cool friends, let's please stop deleting things to save disk space like it's 1984

Painless, Plastic, Powerful

{ "first_name": "Ravi Chandra",

  "last_name": "Padmala",

  "email_address": "n@neena.ca",
  "is_alive": true,

  "age": 30,

  "height_cm": 185.2,

  "billing_address": {

    "address": "902 Main Street, Juiceville",

    "city": "Hyderabad",

    "state": "Telangana",

    "pin": "500002"

  },

  "shipping_address": {

    "address": "Nilenso Research, A-4 Research Drive",

    "city": "Hyderabad",

    "state": "Telangana",

    "pin": 500001"

  },

  ...

}

"address2"?

"country"?

We've been here before

1984

Okay, so

Yay Standards*

SQL:2023

...

SQL:2016

SQL:99

SQL:2011

this one is actually really, really hard
... which is why you've never seen it before

Some
Examples
Please

Schemaless

INSERT INTO users (id, username)
  VALUES (123, 'shivam');

INSERT INTO channels (id, topic)
  VALUES (456, '#off-grid');

INSERT INTO messages (user_id, channel_id, msg)
  VALUES (123, 456, '14awg @ 70volts');

SELECT * FROM messages WHERE channel_id = 456;

Time Travel

 

SELECT name, system_time_start, system_time_end
  FROM users
 
FOR SYSTEM_TIME AS OF 2018-01-02T00:00:00Z;

 

RFC 3339 >= ISO 8601

ISO 8601

RFC
3339

Erasure

 

ERASE FROM users WHERE username = 'shivam';
 

Documents

SQL:2023 (inspired)

INSERT INTO channels {id: 654,
                      name: "#on-grid",
                      access:
                        {mods: [100, 200, 300]
                         ...},
                      ...};

 

SELECT u.access.mods[2] FROM users u;


SELECT u FROM users u; -- select a document(s)

Sugar

SQL:2016 SQL/JSON

+

ECMAScript

LET c = [1, 2, 3];
LET d = 41;
INSERT INTO users {a: 1,          -- shorthand
                   b: [...c, 4],  -- spreads
                   c[d+1]: [3, 4] -- computed
                  }

 

SELECT u.a, u.b, u.c42 FROM users u;

Maybe: Paths

SQL:2016 SQL/JSON

+

ECMAScript

-- get an array of names:
SELECT c.events[*].name FROM channels c;

But Remember

schema migration

audits

reconciliation

GDPR compliance

replication

OLAP pipelines

failover

sharding

etc.

Internals

5

Scale and Scope

SQL parser

SQL compiler

execution

engine

columnar

storage

time travel

storage

vs.

compute

plastic SQL

(UX)

adaptive

indexes

bitemporal

indexes

Sidebar: Storage v Compute

storage

vs.

compute

Sidebar: Adaptive Indexes

"Light and Adaptive Indexing for Immutable Databases" by Håkan Råberg (Strange Loop 2022)

adaptive

indexes

Sidebar: Temporality

(uni-temporal)

time travel

bitemporal

indexes

read-only

read-write

Decision-Making

  • Two people
  • History (3 years, 5 years)
  • Computer Science research
  • Market research
  • Trial-and-error

3 years

5 years

CS Research

Yes, some of these papers are very old. (But not all.)

 

People were trying things back in 1985 that hardware has only caught up to now ... similar to LISP in the 1950s.

Speaking of LISP...

SBCL, you say.

Common Lisp gives us the plasticity to iterate quickly, throw things out, experiment. It's nice not to write a dynamic runtime from scratch.

 

SBCL is fast. C bindings are clunky, but they work.

 

Moving code to Rust "calcifies" it, so that's a late-bound activity.

Retro

Copeland's DSM paper was published in 1980.

Moderno

Apache Arrow is a modern avatar of the DSM.

(5.5) Revisit our Intro

  • A database startup ... but we know the risks
  • Sell Open Source ... it can be done (see SQLite, Minio, Neon, Voltron & Apache Arrow, Cal.com, Typesense, etc.)
  • Papers from 1974 ... were way ahead of their time
  • SQL ... there is no other choice
  • Common Lisp ... is safer, 35 years later

Roadmap

6

Roadmap

  • Powerful UX (think JavaScript, Python, Ruby, Clojure)
  • Time Travel (SELECT ... AS OF ...)
  • Querying Time ("when did X happen?")
  • Erasure (GDPR and PIPEDA compliance)
  • Kubernetes (open source users run clusters)
  • DBaaS (you know, like, a product)
  • HTAP (flex those columnar muscles)
  • Storage vs. Compute (S3 becomes the disk)
  • Assertions, Schema restrictions, Consistent Views...
  • ...
  • Graph Query? (SQL:2023, PGQ)
  • Bitemporality? (SQL:2011 Application Time)

References

  1. Endatabas, Råberg and Deobald, https://www.endatabas.com
  2. The Implementation of POSTGRES, Stonebraker, IEEE Transactions on Knowledge and Data Engineering 1990, https://dsf.berkeley.edu/papers/ERL-M90-34.pdf
  3. Why Static Typing Came Back, Feldman, Goto 2022, https://www.youtube.com/watch?v=Tml94je2edk
  4. The Strength of the Record, Deobald, 2021, https://www.deobald.ca/essays/2021-03-28-strength-of-the-record/
  5. Making Smalltalk a database system., Copeland and Maier., SIGMOD Rec., 14(2):316–325, June 1984.
  6. Lore: A database management system for semistructured data., McHugh, Abiteboul, Goldman, Quass, and Widom., SIGMOD Rec., 26(3):54–66, September 1997.
  7. Blockchain Without the Crypto, Deobald, 2021, https://www.deobald.ca/essays/2021-11-11-blockchain-without-crypto/
  8. Light and Adaptive Indexes for Immutable Databases, Råberg, 2022, https://www.youtube.com/watch?v=Px-7TlceM5A
  9. Date and Time on the Internet: Timestamps, IETF, 2002, https://datatracker.ietf.org/doc/html/rfc3339
  10. I don't need your query language, HackerNews, 2023, https://news.ycombinator.com/item?id=36369018
  11. SQL:2023 is finished: Here is what's new, Eisentraut, 2023, https://peter.eisentraut.org/blog/2023/04/04/sql-2023-is-finished-here-is-whats-new
  12. What's new in SQL:2016 - JSONPath, Winand, 2017, https://modern-sql.com/blog/2017-06/whats-new-in-sql-2016#json-path
  13. JavaScript Object Initializer Syntax, MDN, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer

Questions?

2

1

3

4

5

6

wat?

Ethos

Business

Product

Internals

Roadmap

what-is-endatabas

By stevendeobald

what-is-endatabas

  • 100