[{"data":1,"prerenderedAt":279},["ShallowReactive",2],{"project-23561904":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":45,"post_text":47,"what":48,"said":92,"maker_in_thread":189,"shape":196,"grid":199,"attempts":241,"same_week":242,"maker_shows":35,"maker_hidden":271,"reader_version":272,"card":273},"23561904","Flatend","Quickly build microservices using P2P networking in Node\u002FGo","title","Show HN: Flatend – Quickly build microservices using P2P networking in Node\u002FGo","https:\u002F\u002Fgithub.com\u002Flithdew\u002Fflatend","github.com","lithdew",1592478120,2020,145,20,415,3028,14,"notable","infrastructure","microservice mesh framework","library",[24,25,26,27,28],"microservices","p2p networking","kademlia","service discovery","node go","loved",0.435,{"positive":32,"neutral":33,"mixed":34,"critical":35},8,4,0,1,13,{"idea":38,"performance":40,"docs":41,"execution":42,"design":44},{"positive":39,"critical":35},3,{"positive":34,"critical":34},{"positive":34,"critical":34},{"positive":43,"critical":34},2,{"positive":35,"critical":34},[46,34,34,34,39,34,46,35,34,39,39,46,46,34,39,46,34,46,46,46],5,null,{"problem":49,"audience":56,"pricing":47,"motivation":64,"time_to_build":69,"stack":73,"openness":89,"stage":90,"team_size":91},{"value":50,"source":51,"evidence":52},"Backend work like service discovery, load balancing, RPC and deployment is hard without heavy tooling","maker",[53],{"id":54,"by":11,"text":55},"23562113","Hello! OP here. One of the biggest frustrations I've had prying through Darklang [1], Firebase [2], Supabase [3], and a slew of other low-code projects is that although they do…",{"value":57,"source":58,"evidence":59},"Developers building backends who want to avoid Kubernetes-style configuration","inferred",[60,61],{"id":54,"by":11,"text":55},{"id":62,"by":11,"text":63},"23565622","Honestly, it was during my deep dive into p2p networking a year back that I started scratching my head and thought \"Huh, you could pretty much replace most of the reasons you'd…",{"value":65,"source":51,"evidence":66},"Replace Kubernetes, gRPC and Consul-style setups with simpler p2p-based backend coding",[67,68],{"id":54,"by":11,"text":55},{"id":62,"by":11,"text":63},{"value":70,"source":51,"evidence":71},"Built over two months for Mozilla Spring MVP Labs",[72],{"id":54,"by":11,"text":55},[74,80,85],{"value":75,"source":51,"evidence":76},"Go",[77,79],{"id":78},"post",{"id":54,"by":11,"text":55},{"value":81,"source":51,"evidence":82},"Node.js",[83,84],{"id":78},{"id":54,"by":11,"text":55},{"value":86,"source":51,"evidence":87},"Kademlia DHT",[88],{"id":54,"by":11,"text":55},"open_source","beta","unknown",{"praise":93,"objections":121,"requests":135,"questions":156,"alternatives":172},[94,110],{"value":95,"source":96,"evidence":97},"Simple, dev-friendly approach to P2P backend networking","commenter",[98,102,106],{"id":99,"by":100,"text":101},"23563928","kodablah","I appreciate the dev-friendliness of this (libp2p leaves a lot to be desired last I looked from a dev perspective). How chatty is it? How resilient is it to untrusted peers (e.g.…",{"id":103,"by":104,"text":105},"23569655","HerbsMan","Good job, Kenta :)",{"id":107,"by":108,"text":109},"23563147","ykjt","awesome.. it's a very simple.",{"value":111,"source":96,"evidence":112},"Interesting idea of using p2p for service discovery",[113,117],{"id":114,"by":115,"text":116},"23565475","mpfundstein","mega interesting approach. will try it out later. this is the first time i heard that someone is using a p2p protocol for stuff like service discovery. How did you get this…",{"id":118,"by":119,"text":120},"23567488","Ataraxy","This is neat. Reminds me of moleculer.services to a degree.",[122,129],{"value":123,"source":96,"evidence":124},"Unclear where the p2p aspect is given a central API gateway",[125],{"id":126,"by":127,"text":128},"23565777","rakoo","I might be a bit dense, but I don't see what's p2p about Flatend. You have a service that connects to an API gateway by hardcoding its address, then the client queries the…",{"value":130,"source":51,"evidence":131},"Not resilient to untrusted peers yet",[132],{"id":133,"by":11,"text":134},"23564110","All communication is quiescent unless some given node A sends data to node B (apart from TCP keepalive packets of course). For routing messages, it is expected O(log n) much like…",[136,143,149],{"value":137,"source":96,"evidence":138},"Support WebSocket and gRPC",[139],{"id":140,"by":141,"text":142},"23562395","tak1827","Can I help to support WebSocket or gRPC?",{"value":144,"source":96,"evidence":145},"Example showing nodes discovering each other without hardcoded addresses",[146],{"id":147,"by":127,"text":148},"23566893","I think there should be a way to show the p2p aspect in the example; maybe have the go service and the node service talk to each other, without hardcoding anything ? Just to show…",{"value":150,"source":96,"evidence":151},"Map Express.js routes automatically",[152],{"id":153,"by":154,"text":155},"23562665","xgenecloud","This looks really promising. Can you think of mapping express.js routes to flatend automatically - that would be awesome. We are striving to make things simpler on backend too -…",[157,161,165],{"value":158,"source":96,"evidence":159},"How chatty is it and how resilient to untrusted peers",[160],{"id":99,"by":100,"text":101},{"value":162,"source":96,"evidence":163},"Could it run over custom net.Conn such as Tor",[164],{"id":99,"by":100,"text":101},{"value":166,"source":96,"evidence":167},"Why not libp2p",[168],{"id":169,"by":170,"text":171},"23566854","imglorp","Was any thought given to libp2p? The IPFS project is also using Kademlia and they're on top of that.",[173,177,181,185],{"value":174,"source":96,"evidence":175},"Moleculer",[176],{"id":118,"by":119,"text":120},{"value":178,"source":51,"evidence":179},"Firebase",[180],{"id":54,"by":11,"text":55},{"value":182,"source":51,"evidence":183},"Supabase",[184],{"id":54,"by":11,"text":55},{"value":186,"source":51,"evidence":187},"Darklang",[188],{"id":54,"by":11,"text":55},{"comments":46,"answered":33,"key":190},[191,192,193],{"id":54,"text":55},{"id":133,"text":134},{"id":194,"text":195},"23566321","No worries: Flatend uses Kademlia for helping developers bootstrap the network, and to have nodes discover services from one another. To clarify, the API gateway I provided is…",{"commenters":197,"max_depth":33,"maker_replies":46,"first_comment_mins":198,"lifespan_hours":36},12,40,[200,202,206,208,210,212,214,217,219,220,221,223,226,227,229,230,231,233,236,239],[153,34,46,201,154,34],"project\u002Fpositive\u002Fidea",[203,34,34,204,205,34],"23563464","commenter\u002Fneutral\u002Fnone","blader_johny",[207,34,34,204,154,34],"23563625",[54,35,34,209,11,35],"project\u002Fneutral\u002Fidea",[99,35,39,211,100,34],"project\u002Fneutral\u002Fperformance",[133,35,34,213,11,35],"project\u002Fneutral\u002Fprivacy",[215,35,46,201,216,34],"23564982","asim",[126,35,35,218,127,34],"project\u002Fcritical\u002Fidea",[194,35,34,209,11,35],[169,35,39,209,170,34],[147,35,39,222,127,34],"project\u002Fneutral\u002Fdocs",[224,43,46,225,141,34],"23562509","project\u002Fpositive\u002Fexecution",[114,39,46,201,115,34],[62,39,34,228,11,35],"maker\u002Fneutral\u002Fnone",[118,33,39,209,119,34],[140,46,46,225,141,34],[232,46,34,228,11,35],"23562435",[234,46,46,235,141,34],"23562532","maker\u002Fpositive\u002Fnone",[107,237,46,238,108,34],6,"project\u002Fpositive\u002Fdesign",[103,240,46,235,104,34],7,[],[243,248,253,258,262,267],{"id":244,"name":245,"points":246,"category":247},"23591953","PJDL",337,"hardware",{"id":249,"name":250,"points":251,"category":252},"23610527","IHP",280,"languages",{"id":254,"name":255,"points":256,"category":257},"23616878","QuestDB",271,"data",{"id":259,"name":260,"points":261,"category":252},"23602008","Web3Torrent",206,{"id":263,"name":264,"points":265,"category":266},"23595430","Browservice",193,"dev_tools",{"id":268,"name":269,"points":270,"category":252},"23612910","Awk-JVM",180,false,"v2",{"id":274,"name":5,"line":6,"ai":271,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":275,"top":18,"kw":276,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":277,"url":9,"mix":278,"praise":95,"objection":123,"sub":21},23561904,0.44,[24,25,26,27,28],"50003051033550350555",[32,33,34,35],1794036592348]