Show HN: SpacetimeDB – A database that replaces your server
80 points| cloutiertyler | 2 years ago |github.com | reply
The point of the database is that you upload application logic into the database as a WebAssembly stored procedure, so instead of clients connecting to a webserver they connect directly to the database. The database itself does authentication and you write your own authorization logic just like you would inside a webserver.
We’ve developed our game, BitCraft (https://bitcraftonline.com) entirely in this way. All of the game state is stored and synchronized with clients via SpacetimeDB, including player positions and movement.
We also plan to allow you to horizontally scale your applications in two ways:
1. By having multiple databases that can send messages to each other (i.e. the actor model) 2. By having distributed databases which partition data over multiple machines, similarly to CockroachDB, although this approach would cause a commensurate increase in latency in accessing data
Curious to hear your thoughts!
[+] [-] bob1029|2 years ago|reply
I really like the idea of mainframe-style deployment models these days. My patience for 'devops' has zeroed out as of a few years ago. I've been pushing us on a cloud native function war path for the last ~period of time.
Overall, I would say your presentation is fantastic. I was able to try it out in a few minutes and see the actual product for myself. I also really like the fact that you went for C# support. I was going to suggest synergies with the Unity crowd but I see you've already included a guide in your docs about this.
Seems like you might be on to something. I will be keeping an eye on this project for sure.
[+] [-] cloutiertyler|2 years ago|reply
[+] [-] rapnie|2 years ago|reply
Oof. That's a pity. Otherwise interesting innovative concept.
Btw, in the README:
> This is not an open source or free software license, however, it converts to the AGPL v3.0 license with a linking exception after a few years. Note that the AGPL v3.0 does not typically include a linking exception. We have added a custom linking exception to the AGPL license for SpacetimeDB. Our motivation for choosing a free software license is to ensure that contributions made to SpacetimeDB are propogated back to the community. We are expressly not interested in forcing users of SpacetimeDB to open source their own code if they link with SpacetimeDB, so we needed to include a linking exception.
Is that open source then? I never heard of a linking exception before.
[+] [-] cloutiertyler|2 years ago|reply
https://opensource.google/documentation/reference/using/agpl...
[+] [-] ithkuil|2 years ago|reply
Eventually somebody will need to run this on prem and then there will be ops and servers.
[+] [-] cloutiertyler|2 years ago|reply
[+] [-] lord-squirrel|2 years ago|reply
[+] [-] cloutiertyler|2 years ago|reply
Rust modules are agnostic to all of that. Right now they're not async at all since they take place in a transactional context and you don't want to await while a transaction is held open.
[+] [-] jasfi|2 years ago|reply
[+] [-] cloutiertyler|2 years ago|reply
[+] [-] rco8786|2 years ago|reply
Like, why is it so important that your database run on a separate server from your api code?
[+] [-] cloutiertyler|2 years ago|reply
[+] [-] flotwig|2 years ago|reply
[+] [-] potamic|2 years ago|reply
[+] [-] cloutiertyler|2 years ago|reply