3 ms·
SpacetimeDB: A new database written in Rust that replaces your server
- cloutiertyler 3y agoWe (Clockwork Labs) have been developing this database for several years as the backend engine for our MMORPG BitCraft (https://bitcraftonline.com https://bitcraftonline.com). 100% of the game's logic is loaded into the database and then players connect directly to the database instead of to any game server. All the data is then synchronized with the client (trees, player positions, buildings, terrain, etc). We think it will substantially decrease the complexity of deploying a live service. We've released the code under a BSL 1.1 license which converts to a free software license: https://github.com/clockworklabs/SpacetimeDB https://github.com/clockworklabs/SpacetimeDB. Our Discord is: https://discord.gg/spacetimedb https://discord.gg/spacetimedb BitCraft is written in Unity and SpacetimeDB works out of the box with Unity, although we also support several client languages as well (Rust, Typescript, C#, Python).
- pk-protect-ai 3y ago> clients connect directly to the database and execute your application logic inside the database itself Does it mean it is just an RPC server with data store? > This means that you can write your entire application in a single language, Rust, and deploy it as a single binary. No more microservices, no more containers, no more Kubernetes, no more Docker, no more VMs, no more DevOps, no more infrastructure, no more ops, no more servers. What about replication, backups, scalability, high availability?
- cloutiertyler 3y ago> Does it mean it is just an RPC server with data store? I suppose if you want to think of it that way, but you don't get atomic transactions, durability, consistency, and isolation with that. > What about replication, backups, scalability, high availability? All of that will be made available with time. We've already launched our cloud testnet for the database and we're moving rapidly towards the mainnet launch where all of that will be available.
- NateTheDev 3y agoawesome
- liminal 3y agoThis is very cool! - What is SATN for? (Spacetime Algebraic Type Notation JSON format) - Can DB instances be replicated using the WAL? The Typescript support is especially interesting to me :)
- cloutiertyler 3y ago- SATN is the message format for serializing the types in our type system: SATS (Spacetime Algebraic Type System). We need a new algebraic type system to abstract over all the different module language type systems that we support in the database. We need a unified way to represent data types in the database. - Yes they can be replicated! Although at the moment they are not, we'll definitely have log replication by the time we launch our mainnet cloud product.
- metabrew 3y agoneat! any support for efficient spatial queries?
- cloutiertyler 3y agoNot yet! But that will be coming. We need to add it in for BitCraft.
- barelmishal 3y agoCan I see app example somewhere? And how auth is been done with this database server?