Naar de inhoud
IN ONTWIKKELINGGebouwd op Cloudflare00 / TAPEDB

Jouw data.Altijd in sync.

Een getypeerde database voor de apps die je wilt bouwen. Live queries, offline schrijfacties en een geschiedenis die je opnieuw kunt afspelen. Allemaal in je eigen Cloudflare-account.

  • TypeScript-first
  • Core zonder runtime-afhankelijkheden
  • Jouw infrastructuur
  1. 00:00:01.204tx_0193task.create
  2. 00:00:00.977tx_0192task.update
  3. 00:00:00.418tx_0191client.connect
  4. 00:00:00.000tx_0190schema.define

Elke schrijfactie komt op de tape.

01ÉÉN KEER SCHRIJVEN. ZIE HET BINNENKOMEN.

ÉÉN KEER SCHRIJVEN. ZIE HET BINNENKOMEN.

WORKSPACELAUNCHDEMO
app.tsCLIENT 01
// Een query. Een live weergave. Dezelfde API.
db.task.findMany({
  where: { done: false },
}).subscribe(({ data }) => render(data));

// Eén schrijfactie bereikt elke abonnee.
await db.task.create({
  data: { title: "Speel het log opnieuw af" },
});
Van begin tot eind getypeerd. Geen querystrings.
CLIENT 0203 TAKEN

PROJECT

Eerste project

  • Definieer het schemaKLAAR
  • Verbind de clientKLAAR
  • Abonneer je op een queryBEZIG
TRANSACTIETAPE00:00:01.204workspace.ready
02GEBOUWD OP BOUWSTENEN DIE JE AL VERTROUWT.

GEBOUWD OP BOUWSTENEN DIE JE AL VERTROUWT.

  • Cloudflare Workers
  • Durable Objects
  • SQLite
  • R2 Objectopslag
03DE APPLICATIE IS VAN JOU. DE DATA OOK.

Live, offline en opnieuw afspeelbaar.

Definieer een schema. Verbind een client. Abonneer je op een query. TapeDB regelt abonnementen, de offline-outbox en het transactielog.

  • ALIVE

    Live, via een abonnement.

    Abonneer je op een query en ontvang updates per rij zodra relevante data verandert. Dezelfde API voor eenmalig lezen of een live weergave.

    Queries & abonnementen
  • BOFFLINE

    Offline is niet het einde.

    Schrijfacties op één rij worden optimistisch toegepast en wachten in een persistente outbox. Maak opnieuw verbinding en ga verder waar je gebleven was.

    Het offline schrijfpad
  • CGESCHIEDENIS

    Een geschiedenis om op te bouwen.

    Transacties komen in een log. Segmenten en snapshots gaan naar R2, klaar om opnieuw af te spelen en te herstellen wanneer dat nodig is.

    Een kijkje in de transactietape
04SCHEMA, TYPES EN MIGRATIES

Model definiëren.
Typen volgen.

Velden, relaties en toegangsregels in TypeScript. Je schema bepaalt de engine, de migraties en de clienttypes.

  1. 01Eén definitie. Modellen sturen je datalaag aan.
  2. 02Echte relaties. Koppel je modellen en query ze.
  3. 03Gecontroleerde migraties. SQL die je kunt committen.
Leer de model-API kennen
tapedb.schema.tsTS
import { schema, model, t } from "tapedb/schema";

export default schema({
  project: model({
    name: t.string(),
    tasks: t.hasMany("task"),
  }),
  task: model({
    title: t.string(),
    done: t.boolean().default(false),
    project: t.belongsTo("project"),
  }),
});
Het schema stuurt typen en migraties aan.
05KLEINE ONDERDELEN. EEN DOORDACHT SYSTEEM.

Een workspace. Een schrijver. Een tape.

Elke workspace heeft één Durable Object en één SQLite-database. Eén enkele schrijver maakt transacties serialiseerbaar. R2 geeft de log een bestemming.

  1. 01CLIENT

    Jouw applicatie

    • Getypeerde queries
    • Live abonnementen
    • Persistente outbox
    TYPESCRIPT
  2. Verbinding: HTTP / WS
  3. 02WORKSPACE

    Durable Object

    • Eén schrijver
    • SQLite-database
    • Toegangsregels
    ÉÉN PER WORKSPACE
  4. Verbinding: asynchrone flush
  5. 03OPSLAG

    De tape in R2

    • Logsegmenten
    • Snapshots van de toestand
    • Herstel & opnieuw afspelen
    JOUW BUCKETS

Jouw infrastructuur. Je applicatie levert de identiteit; TapeDB beheert de workspacedata.

Lees over de architectuur
06OP WEG NAAR DE PUBLIEKE RELEASE

Gevalideerd.
Vóór de release.

TapeDB is in ontwikkeling. We valideren het volledige pad van het geïnstalleerde pakket tot een draaiende database, voordat we de broncode openen en de beschikbaarheid aankondigen.

Pre-1.0. De API kan nog veranderen. Publieke release nog niet aangekondigd.