[{"data":1,"prerenderedAt":280},["ShallowReactive",2],{"project-28352617":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":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":39,"post_text":41,"what":42,"said":82,"maker_in_thread":176,"shape":185,"grid":189,"attempts":243,"same_week":244,"maker_shows":32,"maker_hidden":273,"reader_version":274,"card":275},"28352617","RefineDB","A strongly-typed document DB that runs on any transactional KV store","title","Show HN: A strongly-typed document DB that runs on any transactional KV store","https:\u002F\u002Fgithub.com\u002Flosfair\u002FRefineDB","github.com","losfair",1630294931,2021,113,26,472,2533,19,"notable","data","document database","library",[21,24,25,26,27],"strongly typed","key-value store","foundationdb","query language","curious",0.24,{"positive":31,"neutral":32,"mixed":33,"critical":33},3,8,0,11,{"idea":36,"docs":37,"design":38},{"positive":31,"critical":33},{"positive":33,"critical":33},{"positive":33,"critical":33},[31,33,31,33,33,33,33,31,33,33,31,40,33,33,40,33,31,33,33,31,40,31,33,33,33,31],5,null,{"problem":43,"audience":41,"pricing":41,"motivation":41,"time_to_build":41,"stack":57,"openness":80,"stage":81,"team_size":81},{"value":44,"source":45,"evidence":46},"Storing and querying nested, typed documents on top of transactional key-value stores.","maker",[47,51,54],{"id":48,"by":49,"text":50},"28356649","monstrado","This looks really promising! Could you provide at a high-level what this aims to offer over FoundationDB's RecordLayer[1]? [1] https:\u002F\u002Fgithub.com\u002FFoundationDB\u002Ffdb-record-layer",{"id":52,"by":11,"text":53},"28363856","- Both FDB record layer and RefineDB support complex types and indexes (with the details differing a lot); FDB record layer's index support is more complete for now. - FDB record…",{"id":55,"by":11,"text":56},"28353813","Thanks for the questions! > How is it better than SQL or other document querying representations? SQL is a nice language for querying relational data, but RefineDB deals with…",[58,66,74],{"value":59,"source":60,"evidence":61},"Rust","commenter",[62],{"id":63,"by":64,"text":65},"28353641","tluyben2","Nice work! Been playing with this idea for a while to write something like this (in Rust); now you did a lot of the heavy lifting for what I would need already.",{"value":67,"source":45,"evidence":68},"FoundationDB",[69,70],{"id":52,"by":11,"text":53},{"id":71,"by":72,"text":73},"28355679","nkohari","This runs on FoundationDB.",{"value":75,"source":45,"evidence":76},"SQLite backend",[77],{"id":78,"by":11,"text":79},"28363762","> can you explain what the issue is with it? And do what are ways to resolve it if TiKV does not resolve it themselves? TiKV is based on multi-raft + Percolator where there is no…","open_source","unknown",{"praise":83,"objections":103,"requests":111,"questions":132,"alternatives":157},[84,96],{"value":85,"source":60,"evidence":86},"Interesting, promising concept for a typed document store",[87,88,92],{"id":48,"by":49,"text":50},{"id":89,"by":90,"text":91},"28353631","lewisjoe","Great work! The ideas are intriguing. I want to know more about the quering approach. How is it better than SQL or other document quering representations? What is a concurrent…",{"id":93,"by":94,"text":95},"28354251","danr4","Looks very very interesting. Nice work. Plans to support more DBs? do you intend for the OS community to build the translation layers?",{"value":97,"source":60,"evidence":98},"Key-value store as a primitive is powerful",[99],{"id":100,"by":101,"text":102},"28355062","rmorey","I love this - a KV store is such a powerful primitive, I've wondered why we don't see more projects like this",[104],{"value":105,"source":60,"evidence":106},"Nested documents are hard to query compared with SQL",[107],{"id":108,"by":109,"text":110},"28356626","StreamBright",">> SQL is a nice language for querying relational data, but RefineDB deals with nested documents. Can't you just expand the nested documents into a non-nested version and use…",[112,117,124],{"value":113,"source":60,"evidence":114},"Support more key-value backends such as TiKV and RocksDB",[115,116],{"id":93,"by":94,"text":95},{"id":78,"by":11,"text":79},{"value":118,"source":60,"evidence":119},"Realtime data-changed event streams",[120],{"id":121,"by":122,"text":123},"28371000","zackmorris","This is great! Can you implement a data-changed event stream like the RethinkDB changefeed and Firebase triggers? https:\u002F\u002Frethinkdb.com\u002Fdocs\u002Fchangefeeds\u002Fjavascript\u002F…",{"value":125,"source":60,"evidence":126},"SQL to RefineASM transpiler",[127,128],{"id":121,"by":122,"text":123},{"id":129,"by":130,"text":131},"28354868","smoyer","If a document DB is strongly typed, if should be possible to implement SQL to return results right?",[133,138,147],{"value":134,"source":60,"evidence":135},"How does it compare with FoundationDB's Record Layer",[136,137],{"id":48,"by":49,"text":50},{"id":52,"by":11,"text":53},{"value":139,"source":60,"evidence":140},"How does the query language differ from SQL",[141,142,143],{"id":89,"by":90,"text":91},{"id":55,"by":11,"text":56},{"id":144,"by":145,"text":146},"28368599","e12e","> RefineDB has types, and I’m not aware of any other query language that deal with types (let me know if I'm wrong). In what sense is SQL not typed?",{"value":148,"source":60,"evidence":149},"Plans for non-primary indexing",[150,154],{"id":151,"by":152,"text":153},"28354754","voidmain","This looks really cool! Perhaps you should show some nontrivial examples of (read) queries in RefineASM. Also, what are your plans (if any) for non primary indexing? Storage…",{"id":155,"by":11,"text":156},"28355182","On non-primary indexing: It's a nice thing to have but I haven't decided on the design yet. My current preference is to implement the non-primary index feature as a library once…",[158,162,169],{"value":159,"source":60,"evidence":160},"FoundationDB Record Layer",[161],{"id":48,"by":49,"text":50},{"value":163,"source":60,"evidence":164},"TerminusDB",[165],{"id":166,"by":167,"text":168},"28354847","LukeEF","TerminusDB's WOQL deals with types. As with RefineDB, TDB is designed to work with nested documents.",{"value":170,"source":60,"evidence":171},"EdgeDB",[172],{"id":173,"by":174,"text":175},"28354692","unraveller",">other query language that deal with types EdgeDB has a similar strongly typed schema [1], see their edgeQL\u002FgraphQL ability. Their typed schema also facilitates computed…",{"comments":177,"answered":178,"key":179},7,6,[180,181,182],{"id":52,"text":53},{"id":55,"text":56},{"id":183,"text":184},"28353822","Thanks :)",{"commenters":186,"max_depth":40,"maker_replies":177,"first_comment_mins":187,"lifespan_hours":188},18,158,38,[190,192,194,195,196,198,201,204,205,207,209,211,213,217,219,221,223,225,228,230,232,235,236,238,241,242],[48,33,31,191,49,33],"project\u002Fneutral\u002Fidea",[52,33,33,191,11,193],1,[89,193,31,191,90,33],[55,193,33,191,11,193],[173,193,33,197,174,33],"other\u002Fneutral\u002Fnone",[199,193,33,197,200,33],"28357055","cormacrelf",[202,193,33,197,203,33],"28358431","1st1",[166,193,31,191,167,33],[108,193,33,206,109,33],"commenter\u002Fneutral\u002Fdesign",[144,193,33,208,145,33],"commenter\u002Fneutral\u002Fidea",[121,210,31,191,122,33],2,[100,31,40,212,101,33],"project\u002Fpositive\u002Fidea",[214,31,33,215,216,33],"28355503","other\u002Fpositive\u002Fnone","bognition",[71,31,33,218,72,33],"commenter\u002Fneutral\u002Fnone",[63,220,40,212,64,33],4,[183,220,33,222,11,193],"maker\u002Fpositive\u002Fnone",[151,40,31,224,152,33],"project\u002Fneutral\u002Fdocs",[226,40,33,227,11,193],"28354938","maker\u002Fneutral\u002Fdocs",[155,40,33,229,11,193],"project\u002Fneutral\u002Fdesign",[231,40,31,229,152,33],"28356739",[233,178,40,212,234,33],"28353205","guywhocodes",[93,177,31,191,94,33],[237,177,33,229,11,193],"28354396",[239,177,33,240,64,33],"28357099","other\u002Fneutral\u002Fperformance",[78,177,33,229,11,193],[129,32,31,191,130,33],[],[245,250,255,260,264,268],{"id":246,"name":247,"points":248,"category":249},"28347439","ente",1180,"consumer_social",{"id":251,"name":252,"points":253,"category":254},"28320346","freeoptionscreener",501,"finance_crypto",{"id":256,"name":257,"points":258,"category":259},"28329444","metameme",418,"creative",{"id":261,"name":262,"points":263,"category":259},"28371035","stickerdoodle.app",185,{"id":265,"name":266,"points":267,"category":259},"28362199","webcam-filters",174,{"id":269,"name":270,"points":271,"category":272},"28339545","barchart",86,"dev_tools",false,"v2",{"id":276,"name":5,"line":6,"ai":273,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":277,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":278,"url":9,"mix":279,"praise":85,"objection":105,"sub":21},28352617,[21,24,25,26,27],"30300003003500503003530003",[31,32,33,33],1794036610737]