19 पॉइंट द्वारा GN⁺ 2025-04-11 | 5 टिप्पणियां | WhatsApp पर शेयर करें
  • SpacetimeDB एक ऐसा सिस्टम है जो database और server functionality को जोड़ता है
  • पारंपरिक web या game server को अलग से रखने के बजाय, client सीधे database से connect होकर application logic चला सकता है
  • Rust में लिखे गए "module" रूप के stored procedures के जरिए app logic को सीधे database में upload किया जा सकता है
  • पूरे application को एक single Rust binary के रूप में deploy किया जा सकता है, और DevOps, containers, servers, microservices आदि की जरूरत नहीं होती

मुख्य विशेषताएँ

  • यह smart contract जैसी अवधारणा है, लेकिन blockchain से संबंधित नहीं है
  • मौजूदा smart contract systems की तुलना में काफी तेज़ है
  • MMORPG गेम BitCraft Online का backend केवल SpacetimeDB से बना है
  • गेम के भीतर के सभी elements database में real-time में process होते हैं और client के साथ sync किए जाते हैं
  • यह real-time applications के लिए optimized है और latency को न्यूनतम करने के लक्ष्य के साथ डिज़ाइन किया गया है
  • application state memory में रखी जाती है, और recovery के लिए WAL(Write-Ahead Log) में record की जाती है

इंस्टॉलेशन का तरीका

macOS / Linux इंस्टॉलेशन

Windows इंस्टॉलेशन

Docker से चलाना

  • अगर Docker का उपयोग कर रहे हैं
    docker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start

शुरू करने के लिए 4 चरण

  1. spacetime CLI tool install करें
  2. spacetime start command से single node चलाएँ
  3. supported languages में से किसी एक में module लिखें और upload करें
  4. client library से database से connect करें

भाषा समर्थन

server-side modules

client libraries

लाइसेंस जानकारी

  • यह BSL 1.1 लाइसेंस का पालन करता है
  • एक निश्चित अवधि के बाद AGPL v3.0 + linking exception में बदल जाता है
  • SpacetimeDB से जुड़े applications के source को सार्वजनिक करने की आवश्यकता नहीं है
  • यह free software licensing का ऐसा मॉडल है जिसे इस तरह डिज़ाइन किया गया है कि community में योगदान वापस लौटे

आधिकारिक दस्तावेज़

5 टिप्पणियां

 
ethanhur 2025-04-11

दिलचस्प आइडिया है। जानना चाहूंगा कि इन्होंने DDoS या Auth जैसी चीज़ों को कितनी अच्छी तरह सुलझाया है।

 
turastory 2025-04-11

कम से कम नाम तो ज़बरदस्त स्टाइलिश है।

 
jujumilk3 2025-04-11

मुझे लगा था यह वाकई काफ़ी नया और अच्छा लगने वाला है, लेकिन मैंने तो इसे बहुत पहले ही Git star दे रखा था। याददाश्त...

 
xguru 2025-04-11

SpaceTimeDB - DB और सर्वर को एक में जोड़ना

इसे डेढ़ साल पहले पेश किया गया था, और यह अब भी लगातार अच्छे से अपडेट हो रहा है। a16z और Supercell ने भी इसमें निवेश किया है।

 
GN⁺ 2025-04-11
Hacker News राय
  • SpacetimeDB उस तकनीकी श्रेणी में आता है जिसे "cosmic thought rearrangement" कहा जा सकता है। इसमें संरचनात्मक पुनर्व्यवस्था के ज़रिए प्रदर्शन को काफ़ी बेहतर बनाने की क्षमता होती है

    • ऐसी तकनीकें डेवलपर्स से अपनी सोच को फिर से व्यवस्थित करने की मांग करती हैं, और यह समझना मुश्किल होता है कि समस्या तकनीक के पूरी तरह अपनाए न जाने में है, या उसकी पेशकश किसी खास use case के लिए उपयुक्त नहीं है
    • इसी तरह की तकनीकों में Elixir और Node शामिल हैं, जहाँ कुछ दुर्लभ guarantees पाने के लिए पूरे stack को अपनाना पड़ता है और नई सीमाओं को स्वीकार करना होता है
    • ऐसी तकनीकें तब सफल होने की अधिक संभावना रखती हैं जब स्पष्ट विज़न वाले अग्रणी लोग open source में उनकी ताकत दिखाते हैं
    • उम्मीद है कि Clockwork Labs अपना example game सफलतापूर्वक पेश करेगा
  • पिछली पोस्ट की सबसे अच्छी टिप्पणी:

    • SpacetimeDB एक सामान्य डेटाबेस है, जो low latency और WASM stored procedures को support करता है
    • यह multiplayer गेम की persistent world के लिए एक मज़बूत building block जैसा दिखता है
    • latency छिपाने वाला netcode आपको खुद implement करना होगा
  • SpacetimeDB को BitCraft नाम के बड़े MMORPG को support करने के लिए विकसित किया गया था

    • इसे गेम की performance requirements के हिसाब से डिज़ाइन किया गया है
    • यह बहुत low latency और high throughput का दावा करता है
    • अगर आप नया MMO बनाना चाहते हैं, तो मौजूदा बाज़ार के approaches को देखना अच्छा रहेगा
    • World of Warcraft के उदाहरण से, client की reliability और server का event coordination scalability hacks का मुख्य हिस्सा हैं
  • इस तकनीक का इस्तेमाल करके game server कैसे लिखा जाए, यह समझना कठिन है

    • जब server पर physics simulation, pathfinding, animation वगैरह simulate करने हों, तब इन्हें कैसे integrate किया जाए, यही चिंता है
    • आम तौर पर Unreal/Unity headless mode इस्तेमाल किया जाता है, लेकिन SpacetimeDB के साथ ऐसा लगता है कि game engine छोड़कर सब कुछ शुरुआत से फिर से implement करना पड़ेगा
  • BitCraft देखने में प्यारा लगता है

    • "maincloud" जैसा pricing-related term देखकर मेरा निजी पूर्वाग्रह बना, लेकिन यह बस hosting credits के लिए naming है
  • YouTube SpacetimeDB की सिफारिश करता है, लेकिन उसने कभी video game नहीं बनाया है

    • अच्छा होगा अगर game developers बताएं कि यह तकनीक वास्तव में कितनी उपयोगी है
    • यह तय करना मुश्किल है कि इसमें कितना हिस्सा marketing का है
  • यह project BSL के अंतर्गत कवर होता है, और इसमें कुछ हद तक बोझिल time limit है

    • हर service के लिए सिर्फ एक instance की अनुमति है
  • relational database schema और app में data handle करने के तरीके को गड़बड़ नहीं करना चाहिए

    • explicit control की ज़रूरत होती है, और annotation magic से बचना चाहिए
  • सोचता हूँ कि क्या single-player गेम में local database चलाना समझदारी है

    • यह भी सवाल है कि पूरे game state को local database के ज़रिए चलाने का कोई लाभ है या नहीं
    • अगर एक मज़बूत state manager अलग software के रूप में मौजूद हो, तो शायद सिर्फ graphics engine लिखना ही काफ़ी हो
  • यह in-memory database जैसा दिखता है, जिसमें domain logic host करने के लिए WASM runtime है

    • यह scalability और clustering को कैसे संभालता है, यह स्पष्ट नहीं है
    • लगता है data sharding आपको खुद करनी होगी
    • replication और consistency distributed database का कठिन हिस्सा हैं
    • memory-based और disk-based tables दोनों का इस्तेमाल किया जा सकता है
    • सामान्य databases यह पहले से करते हैं, और stored procedures में domain logic लिखना झंझटभरा होता है
    • फिलहाल sqlite को memory table के रूप में binary file में embed करना लगभग बराबरी का विकल्प लगता है
    • clients को table updates publish करने वाला code भी आपको खुद लिखना होगा
    • clustering पर documentation है, लेकिन वह ठोस नहीं है