22 points par xguru 2023-08-21 | 6 commentaires | Partager sur WhatsApp
  • Une base de données relationnelle capable de stocker directement la logique applicative
    • Sous la forme de procédures stockées appelées « Modules »
  • Sans serveur séparé, le client se connecte directement à la base de données et exécute la logique applicative à l’intérieur de celle-ci
  • Optimisé pour garantir la « vitesse maximale » et la « latence minimale » plutôt que pour les traitements batch ou OLAP
    • Les performances sont obtenues en conservant tout l’état de l’application en mémoire
    • Les données sont enregistrées via un WAL (Write-Ahead Log)
  • Le backend réel du MMORPG BitCraft Online fonctionne comme un unique module SpacetimeDB. Aucun serveur séparé
  • Fonctionne comme une bibliothèque de base de données embarquée, pouvant être intégrée à sa propre application
    • Ou exécuté directement en mode autonome séparé (via le CLI spacetime)
  • Binaire unique en Rust, avec prise en charge de l’installation sur Mac / Linux / Windows
  • « Multiplayer at the speed of light »

6 commentaires

 
regentag 2023-08-22

Un peu comme le PL/SQL d’Oracle ?

 
xguru 2023-08-23

Le concept est assez similaire, mais avec une prise en charge de langages plus large, cela semble pouvoir être plus polyvalent.

 
cosine20 2023-08-22

Oh, c’est intéressant.

 
kuroneko 2023-08-21

Ils disent vouloir prendre en charge d'autres langages plus tard, et ça me semble être une assez bonne idée.
Ça devrait réduire encore davantage les préoccupations liées aux performances.

 
yoehwan 2023-08-21

En regardant le dépôt GitHub, on dirait que c’est écrit en Rust, mais pourriez-vous me dire où se trouve l’information concernant la « prise en charge de l’installation sur macOS/Linux/Windows via un binaire Go » ?

 
xguru 2023-08-21

Oups, j’ai dû confondre avec autre chose pendant que j’écrivais. J’ai corrigé.