[{"data":1,"prerenderedAt":354},["ShallowReactive",2],{"project-32852478":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":43,"post_text":45,"what":46,"said":93,"maker_in_thread":199,"shape":205,"grid":210,"attempts":314,"same_week":315,"maker_shows":33,"maker_hidden":346,"reader_version":347,"card":348},"32852478","WunderBase","Serverless OSS database on top of SQLite, Firecracker","title","Show HN: WunderBase – Serverless OSS database on top of SQLite, Firecracker","https:\u002F\u002Fwundergraph.com\u002Fblog\u002Fwunderbase_serverless_graphql_database_on_top_of_sqlite_firecracker_and_prisma","wundergraph.com","jensneuse",1663251729,2022,179,47,332,2570,13,"notable","data","serverless database","api",[21,24,25,26],"sqlite","graphql","firecracker","curious",-0.239,{"positive":30,"neutral":31,"mixed":32,"critical":33},3,11,0,8,22,{"execution":36,"design":38,"idea":39,"performance":41,"privacy":42},{"positive":32,"critical":37},2,{"positive":32,"critical":37},{"positive":30,"critical":40},1,{"positive":32,"critical":40},{"positive":32,"critical":37},[40,32,30,32,40,30,30,32,32,32,32,40,40,30,30,44,30,30,30,32,32,32,32,32,32,32,32,40,30,44,40,32,32,32,32,32,44,32,32,40],5,null,{"problem":47,"audience":45,"pricing":45,"motivation":45,"time_to_build":45,"stack":59,"openness":91,"stage":92,"team_size":92},{"value":48,"source":49,"evidence":50},"Running a database that scales to zero and starts quickly on demand","inferred",[51,55],{"id":52,"by":53,"text":54},"32853393","gregwebs","This just runs a request proxy that turns off after 10 seconds of no activity and starts it up (with a half second delay) when there is a new request. It runs SQLite with Prisma.…",{"id":56,"by":57,"text":58},"32853851","tptacek","You can, of course, scale to >1 with the Fly Machines API. I don't know enough about how they're managing the SQLite part of this to say more about how this scales, except that I…",[60,65,73,80,84],{"value":61,"source":62,"evidence":63},"SQLite","commenter",[64],{"id":52,"by":53,"text":54},{"value":66,"source":62,"evidence":67},"Prisma",[68,69],{"id":52,"by":53,"text":54},{"id":70,"by":71,"text":72},"32863703","nikolasburk","Hey there, I'm Nikolas from the Prisma team. Just came here to quickly clarify this notion: > Prisma is an API server that puts a GraphQL API in front of a DB. Prisma is an ORM…",{"value":74,"source":62,"evidence":75},"Firecracker",[76],{"id":77,"by":78,"text":79},"32857469","avl999","SQLite, KVM, Firecracker, GraphQL, Serverless... if this was written in Rust it would hit the holy trinity of all the HN buzzwords that pull a post to the frontpage ;)",{"value":81,"source":62,"evidence":82},"Fly Machines",[83],{"id":56,"by":57,"text":58},{"value":85,"source":62,"evidence":86},"Go",[87],{"id":88,"by":89,"text":90},"32859072","snadal","Slightly off-topic: according to what I read, it is a lightweight proxy written in golang that is capable of starting a vm when receiving network traffic and 10 seconds after the…","open_source","unknown",{"praise":94,"objections":106,"requests":140,"questions":152,"alternatives":168},[95,99],{"value":96,"source":62,"evidence":97},"Interesting idea for scaling lower-cost dev databases",[98],{"id":52,"by":53,"text":54},{"value":100,"source":62,"evidence":101},"Serverless database concept is appealing",[102],{"id":103,"by":104,"text":105},"32858084","talhof8","Serverless database. Loving it! Good-luck!",[107,115,122,129],{"value":108,"source":62,"evidence":109},"Scales only between 0 and 1 instance, not truly serverless",[110,111],{"id":52,"by":53,"text":54},{"id":112,"by":113,"text":114},"32853577","lbhdc","I was pretty interested to see how this worked as well. I think you are right, this is a toy. It will be interesting to see if they can solve scaling. It would be cool if you…",{"value":116,"source":62,"evidence":117},"Not reliable for production; replication is asynchronous and can lose data",[118,119],{"id":52,"by":53,"text":54},{"id":120,"by":53,"text":121},"32853777","Are you going to use LiteFS then for replication [1]? LiteFS replication is asynchronous, meaning failover can lose the latest data. Will LiteFS scale down to 0? Does scaling…",{"value":123,"source":62,"evidence":124},"Cold start delay and proxy startup time seem high",[125],{"id":126,"by":127,"text":128},"32860067","mrhands556","500ms seems high for a cold start for a proxy layer. Is there anything I’m missing? JVM is pretty awful at cold starts but with graalvm I got a pretty big micronaut project…",{"value":130,"source":62,"evidence":131},"Exposing the database publicly is a security risk",[132,136],{"id":133,"by":134,"text":135},"32854012","bragr",">I do not recommend to expose WunderBase to the public internet. The intended use case is to run it on a private network and expose it to your frontend via an API Gateway, like…",{"id":137,"by":138,"text":139},"32856773","shabbatt","Seeing how many MongoDB instances were running wide open to the internet despite calls to not do so, your concern is certainly valid.",[141,145],{"value":142,"source":62,"evidence":143},"Drop the GraphQL layer and allow a standard SQLite client",[144],{"id":112,"by":113,"text":114},{"value":146,"source":147,"evidence":148},"Add read replicas and backups","maker",[149],{"id":150,"by":11,"text":151},"32853442","As discussed in the post, the next steps are to add read replicas. Regarding backups, that's possible with Litestream: https:\u002F\u002Fgithub.com\u002Fbenbjohnson\u002Flitestream",[153,160],{"value":154,"source":62,"evidence":155},"How is replication and scaling handled across instances?",[156,157],{"id":56,"by":57,"text":58},{"id":158,"by":138,"text":159},"32857870","hmm but how would the replication and sync be handled if you have many sqlite instances on edge locations around the world? If someone inserts a row with id 234 and somebody from…",{"value":161,"source":62,"evidence":162},"Will LiteFS scale to zero and how fast is failover?",[163,164],{"id":120,"by":53,"text":121},{"id":165,"by":166,"text":167},"32854092","benbjohnson","LiteFS\u002FLitestream author here. LiteFS will scale to zero with a persistent volume attached. For short-lived instances (aka serverless), we still have a few more features to…",[169,176,186,193],{"value":170,"source":62,"evidence":171},"Fly.io Postgres and LiteFS",[172,175],{"id":173,"by":57,"text":174},"32857903","Yes: the model topology you should have in your head is \"single writer, multiple readers\" --- exactly the same way it would work with a conventional Postgres setup. What you're…",{"id":120,"by":53,"text":121},{"value":177,"source":62,"evidence":178},"Aurora Serverless v2",[179,182],{"id":180,"by":138,"text":181},"32856756","For many fly.io is not a viable alternative especially those that are already on the AWS train. I think that AWS already offers Aurora Serverless v2 which pretty much…",{"id":183,"by":184,"text":185},"32857440","vosper","> I think that AWS already offers Aurora Serverless v2 which pretty much accomplishes what a lot of these me-too-serverless services that won't integrate as well as something…",{"value":187,"source":62,"evidence":188},"PocketBase",[189],{"id":190,"by":191,"text":192},"32860856","pqyzwbq","pocketbase is great, I used it in several personal projects, and I really like it https:\u002F\u002Fgithub.com\u002Fpocketbase\u002Fpocketbase PocketBase is an open source Go backend, consisting of:…",{"value":194,"source":62,"evidence":195},"rqlite",[196],{"id":197,"by":57,"text":198},"32855727","I'm mostly interested in the SQLite part of this, and we don't have an SQLite offering, only Postgres, just to be clear. So you can't hurt my feelings here. When does SQLite…",{"comments":37,"answered":32,"key":200},[201,202],{"id":150,"text":151},{"id":203,"text":204},"32855674","https:\u002F\u002Fgithub.com\u002Fprisma\u002Fprisma-engines#query-engine",{"commenters":206,"max_depth":207,"maker_replies":37,"first_comment_mins":208,"lifespan_hours":209},24,10,58,43,[211,213,215,217,219,221,223,225,227,231,232,234,236,238,240,242,244,246,249,251,252,255,258,259,261,265,267,268,271,273,274,277,279,282,284,286,289,291,294,296,299,302,304,306,309,311,313],[52,32,40,212,53,32],"project\u002Fcritical\u002Fexecution",[150,32,32,214,11,40],"project\u002Fneutral\u002Fexecution",[120,32,30,216,53,32],"maker\u002Fneutral\u002Fexecution",[165,32,32,218,166,32],"other\u002Fneutral\u002Fnone",[112,32,40,220,113,32],"project\u002Fcritical\u002Fdesign",[56,32,30,222,57,32],"project\u002Fneutral\u002Fidea",[224,32,30,214,53,32],"32854727",[226,32,30,214,57,32],"32854795",[228,32,32,229,230,32],"32855653","commenter\u002Fneutral\u002Fnone","soamv",[197,32,32,229,57,32],[233,32,32,229,53,32],"32857568",[235,32,32,229,57,32],"32857863",[237,32,40,212,53,32],"32860767",[239,32,32,229,57,32],"32861969",[180,32,40,241,138,32],"project\u002Fcritical\u002Fidea",[243,32,30,222,57,32],"32857066",[245,32,30,222,138,32],"32857511",[247,32,44,248,57,32],"32857811","project\u002Fpositive\u002Fidea",[158,32,30,250,138,32],"project\u002Fneutral\u002Fdesign",[173,32,30,250,57,32],[253,32,30,254,138,32],"32858193","project\u002Fneutral\u002Fperformance",[256,32,30,257,57,32],"32858260","project\u002Fneutral\u002Fnone",[183,32,32,218,184,32],[260,32,32,218,138,32],"32857530",[262,32,32,263,264,32],"32855611","other\u002Fneutral\u002Fdocs","ithrow",[203,32,32,266,11,40],"project\u002Fneutral\u002Fdocs",[70,32,32,218,71,32],[269,32,32,218,270,32],"32863950","searchableguy",[272,32,32,218,71,32],"32864217",[77,40,32,218,78,32],[275,40,32,218,276,32],"32858492","Sujan",[126,37,40,278,127,32],"project\u002Fcritical\u002Fperformance",[280,30,30,222,281,32],"32854591","azebazenestor",[88,283,32,218,89,32],4,[285,44,44,248,57,32],"32853897",[287,44,40,220,288,32],"32853941","nijave",[290,44,32,229,57,32],"32853958",[292,44,32,229,293,32],"32860832","zibby8",[190,295,32,218,191,32],6,[297,295,32,218,298,32],"32862419","avinassh",[300,295,32,218,301,32],"32862520","zimpenfish",[303,295,32,218,191,32],"32876095",[103,305,44,248,104,32],7,[307,305,32,218,308,32],"32861202","selcuka",[310,305,32,218,104,32],"32864139",[133,33,40,312,134,32],"project\u002Fcritical\u002Fprivacy",[137,33,40,312,138,32],[],[316,321,326,331,336,341],{"id":317,"name":318,"points":319,"category":320},"32884467","Dog Bunny Puzzle",1859,"games",{"id":322,"name":323,"points":324,"category":325},"32905802","Figr.app",275,"productivity",{"id":327,"name":328,"points":329,"category":330},"32894429","Stalwart JMAP",190,"infrastructure",{"id":332,"name":333,"points":334,"category":335},"32879848","LambdaLisp",189,"languages",{"id":337,"name":338,"points":339,"category":340},"32881956","virtual-fido",166,"security_privacy",{"id":342,"name":343,"points":344,"category":345},"32898679","DevTools-X",136,"dev_tools",false,"v2",{"id":349,"name":5,"line":6,"ai":346,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":350,"top":18,"kw":351,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":352,"url":9,"mix":353,"praise":96,"objection":108,"sub":21},32852478,-0.24,[21,24,25,26],"1030133000011335333000000001351000005001",[30,31,32,33],1794036625078]