[{"data":1,"prerenderedAt":488},["ShallowReactive",2],{"project-27536878":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":48,"post_text":49,"what":50,"said":93,"maker_in_thread":192,"shape":202,"grid":205,"attempts":450,"same_week":451,"maker_shows":42,"maker_hidden":480,"reader_version":481,"card":482},"27536878","GraphCDN","GraphQL CDN with edge caching and analytics","title","Show HN: GraphCDN – GraphQL CDN with edge caching and analytics","https:\u002F\u002Fgraphcdn.io\u002Fblog\u002Fannouncing-graphcdn","graphcdn.io","mxstbr",1623913262,2021,200,98,231,2533,10,"notable","infrastructure","graphql cdn","web_app",[21,24,25,26],"graphql caching","edge caching","cache invalidation","curious",0.065,{"positive":30,"neutral":31,"mixed":32,"critical":33},16,40,1,9,66,{"execution":36,"performance":39,"idea":41,"design":43,"docs":45,"pricing":46,"privacy":47},{"positive":37,"critical":38},2,0,{"positive":32,"critical":40},4,{"positive":33,"critical":42},5,{"positive":44,"critical":38},3,{"positive":38,"critical":38},{"positive":38,"critical":38},{"positive":38,"critical":38},[44,42,42,44,32,32,44,42,32,32,44,42,44,40,38,44,42,44,44,44,32,38,38,42,44,44,42,44,40,44,42,32,44,44,38,32,42,40,42,44],null,{"problem":51,"audience":62,"pricing":49,"motivation":71,"time_to_build":49,"stack":75,"openness":91,"stage":92,"team_size":91},{"value":52,"source":53,"evidence":54},"Caching GraphQL query results with reliable invalidation is hard","maker",[55,58],{"id":56,"by":11,"text":57},"27536935","Hey HN, When I built my last startup, Spectrum, we spent months building custom caching for our GraphQL API from scratch. It never worked well enough to alleviate our scaling…",{"id":59,"by":60,"text":61},"27536962","timsuchanek","Hey HN, It's a pleasure to share this announcement with you! In all the GraphQL projects I worked on, it was always a pain to get the caching and security right. Instead of you…",{"value":63,"source":64,"evidence":65},"Teams running GraphQL APIs that need caching","inferred",[66,67],{"id":56,"by":11,"text":57},{"id":68,"by":69,"text":70},"27537399","hcentelles","I’ve being waiting for a product like this for some time now, I think there is a huge (not yet served) market for this. I’ve tried to implement something using Cloudflare…",{"value":72,"source":53,"evidence":73},"Founder built custom GraphQL caching at Spectrum that never worked well enough",[74],{"id":56,"by":11,"text":57},[76,80,87],{"value":77,"source":53,"evidence":78},"Fastly Compute@Edge",[79],{"id":56,"by":11,"text":57},{"value":81,"source":82,"evidence":83},"Rust","commenter",[84],{"id":85,"by":60,"text":86},"27537115","Good question! These are the main reasons: Fastly has much faster cache purging - it can purge any content globally in about 150ms. Purging is one of THE crucial parts which make…",{"value":88,"source":82,"evidence":89},"WebAssembly",[90],{"id":85,"by":60,"text":86},"unknown","launched",{"praise":94,"objections":111,"requests":136,"questions":157,"alternatives":180},[95,104],{"value":96,"source":82,"evidence":97},"Solves a real GraphQL caching pain",[98,99,100],{"id":59,"by":60,"text":61},{"id":68,"by":69,"text":70},{"id":101,"by":102,"text":103},"27538533","kenrose","Two hard problems solved: 1. Cache invalidation 2. Decent project name Joking aside, this is great. Traditional CDNs + GraphQL always felt like an impedance mismatch.",{"value":105,"source":82,"evidence":106},"Clean design",[107],{"id":108,"by":109,"text":110},"27539769","blorenz","GraphCDN seemingly is an innovative service I'll be checking out, though I just wanted to comment that the app is a beautiful example of the use of Tailwind. I was a little taken…",[112,122,129],{"value":113,"source":82,"evidence":114},"Global purge in 150ms is physically implausible",[115,119],{"id":116,"by":117,"text":118},"27545893","kentonv","> it can purge any content globally in about 150ms Hmm, how can that be? Light in a straight-line fiber optic cable would take 200ms to traverse a greater circle around the…",{"id":120,"by":117,"text":121},"27713119","That's the speed of light in a vacuum. The speed of light in fiber optic is slower. Travelling half of the distance is not good enough, because if you haven't received…",{"value":123,"source":82,"evidence":124},"Smart invalidation may not be reliable",[125],{"id":126,"by":127,"text":128},"27537707","andrewingram","I asked Max in private, but i'll ask again here for visibility. How do you handle smart invalidation? Or more specifically, how do I trust that you're handling smart invalidation…",{"value":130,"source":82,"evidence":131},"Shallow moat versus Cloudflare or Fastly",[132],{"id":133,"by":134,"text":135},"27537168","joshenders","Critical feedback: This seems like a product with an exceptionally shallow moat. What is stopping Cloudflare and Fastly from cloning and burying?",[137,143,150],{"value":138,"source":82,"evidence":139},"Support for persisted and batched queries",[140],{"id":141,"by":69,"text":142},"27537751","Thanks for the quick (good news) answer. I’ve more questions We use Apollo client, I’m worried about 2 specific features of it: Batch queries [1], we’re currently using it.…",{"value":144,"source":82,"evidence":145},"Partial query caching",[146],{"id":147,"by":148,"text":149},"27538335","ivanvanderbyl","Max & Tim, thanks for building this. This is something I recently spent 2 weeks trying to solve, then more pressing issues came up so we threw more CPUs at the problem. So from…",{"value":151,"source":82,"evidence":152},"On-prem or internal deployment",[153],{"id":154,"by":155,"text":156},"27537003","tcmb","Sounds cool! I‘d be interested in the caching and analytics part, but without the CDN, i.e. for an internal GraphQL server. Is there a way to do that?",[158,165,176],{"value":159,"source":82,"evidence":160},"Why Fastly over Cloudflare Workers or Lambda Edge",[161],{"id":162,"by":163,"text":164},"27537062","0xy","This is a super interesting project and thanks for posting it. I'm just wondering why you decided on Fastly over Cloudflare Workers or AWS Lambda Edge for this?",{"value":166,"source":82,"evidence":167},"Is the cache consistent across POPs",[168,172],{"id":169,"by":170,"text":171},"27546544","nojvek","Q: Is the CDN cache consistent? i.e if I delete or change an object, does it immediately reflect across all the POPs across the globe? If so what are the potential…",{"id":173,"by":174,"text":175},"27537284","the_mitsuhiko","How does it deal with non yet propagated purges or are you always at risk of reading stale data for a short period?",{"value":177,"source":82,"evidence":178},"How does pricing work and what counts as a request",[179],{"id":68,"by":69,"text":70},[181,185],{"value":182,"source":82,"evidence":183},"Apollo Cloud",[184],{"id":68,"by":69,"text":70},{"value":186,"source":82,"evidence":187},"Cloudflare Workers",[188],{"id":189,"by":190,"text":191},"27536912","pistoriusp","This is such a great idea! There are a lot of plays in this space that try to move the database, or serverless-functions closer to the end-users, but in all likeliness if you're…",{"comments":193,"answered":33,"key":194},12,[195,196,199],{"id":56,"text":57},{"id":197,"text":198},"27537528","Now you can just use GraphCDN and don't have to build it yourself! ;)",{"id":200,"text":201},"27537947","Absolutely, we'll work on that. Let us know if you have any questions or run into any trouble at support@graphcdn.io!",{"commenters":31,"max_depth":203,"maker_replies":193,"first_comment_mins":203,"lifespan_hours":204},8,369,[206,208,210,212,216,217,219,222,224,226,228,231,232,235,236,239,242,244,247,250,254,257,259,262,265,268,271,273,275,277,281,283,286,289,290,292,295,298,300,303,305,306,307,309,312,314,316,318,321,323,326,329,332,335,338,340,342,344,347,349,352,354,357,360,363,364,367,369,372,375,378,379,382,384,386,389,394,397,398,400,402,404,406,407,409,412,415,418,421,425,427,430,432,437,440,442,444,448],[56,38,38,207,11,32],"maker\u002Fpositive\u002Fidea",[162,38,44,209,163,38],"project\u002Fneutral\u002Fexecution",[85,38,42,211,60,38],"project\u002Fpositive\u002Fperformance",[213,38,42,214,215,38],"27537470","project\u002Fpositive\u002Fidea","gnz00",[197,38,38,214,11,32],[218,38,42,214,215,38],"27542071",[220,38,44,221,174,38],"27537846","project\u002Fneutral\u002Fperformance",[223,38,44,221,60,38],"27537926",[225,38,44,221,174,38],"27538001",[227,38,44,221,60,38],"27538082",[229,38,32,230,174,38],"27538294","project\u002Fcritical\u002Fperformance",[116,38,32,230,117,38],[233,38,38,234,60,38],"27577810","commenter\u002Fneutral\u002Fperformance",[120,38,32,230,117,38],[237,38,44,209,238,38],"27537304","pbowyer",[240,38,38,241,215,38],"27537486","commenter\u002Fneutral\u002Fexecution",[243,38,38,241,60,38],"27537596",[245,38,42,246,215,38],"27542102","project\u002Fpositive\u002Fdesign",[248,38,42,249,60,38],"27537585","project\u002Fpositive\u002Fexecution",[251,38,32,252,253,38],"27537328","project\u002Fcritical\u002Fidea","latch",[255,38,44,256,60,38],"27537629","project\u002Fneutral\u002Fidea",[258,38,32,252,253,38],"27538189",[260,38,38,261,60,38],"27538535","commenter\u002Fneutral\u002Fidea",[263,38,32,252,264,38],"27538230","ako",[266,38,38,267,60,38],"27538546","other\u002Fneutral\u002Fidea",[269,38,44,256,270,38],"27537830","cpursley",[272,38,42,214,60,38],"27537838",[274,38,42,214,270,38],"27537897",[200,38,38,276,11,32],"maker\u002Fneutral\u002Fdocs",[278,38,44,279,280,38],"27538020","project\u002Fneutral\u002Fnone","nivertech",[282,38,44,279,60,38],"27538056",[284,38,44,256,285,38],"27538150","eurasiantiger",[287,38,44,288,60,38],"27538170","project\u002Fneutral\u002Fdocs",[147,38,42,246,148,38],[291,38,38,256,11,32],"27538514",[293,38,38,267,294,38],"27547277","graphql",[296,38,44,209,297,38],"27538948","agmontpetit",[299,38,44,209,60,38],"27539018",[301,38,44,221,302,38],"27540211","hermanradtke",[304,38,44,221,60,38],"27540280",[59,32,42,214,60,38],[126,37,44,256,127,38],[308,37,38,256,11,32],"27537786",[310,37,44,256,311,38],"27538092","jorams",[313,37,38,256,11,32],"27538135",[315,37,44,256,280,38],"27538193",[317,37,38,256,11,32],"27538527",[319,37,38,261,320,38],"27537874","habibur",[322,37,44,256,60,38],"27538578",[324,44,32,252,325,38],"27537532","doteka",[327,44,44,256,328,38],"27537654","philplckthun",[330,44,38,267,331,38],"27537693","coffeedoughnuts",[333,44,38,334,60,38],"27537728","commenter\u002Fneutral\u002Fnone",[336,44,38,267,337,38],"27538717","simplyinfinity",[339,44,38,261,60,38],"27539142",[341,44,38,261,337,38],"27539463",[343,44,42,214,60,38],"27540299",[345,44,38,346,325,38],"27539112","other\u002Fneutral\u002Fnone",[348,44,44,256,60,38],"27537699",[350,44,44,256,351,38],"27540247","pier25",[353,44,38,241,60,38],"27540439",[355,44,38,267,356,38],"27537804","pm90",[358,44,44,359,351,38],"27540305","project\u002Fmixed\u002Fidea",[361,44,38,267,362,38],"27540558","handrous",[189,40,42,214,190,38],[365,40,44,366,60,38],"27537044","maker\u002Fneutral\u002Fidea",[68,42,44,368,69,38],"project\u002Fneutral\u002Fpricing",[370,42,38,371,163,38],"27537464","other\u002Fneutral\u002Fpricing",[373,42,44,374,60,38],"27537566","maker\u002Fneutral\u002Fpricing",[376,42,42,377,60,38],"27537542","maker\u002Fpositive\u002Fexecution",[141,42,44,209,69,38],[380,42,38,381,11,32],"27537802","maker\u002Fneutral\u002Fexecution",[383,42,44,381,69,38],"27537872",[101,385,42,214,102,38],6,[387,385,44,388,60,38],"27538558","maker\u002Fneutral\u002Fnone",[390,391,44,392,393,38],"27536961",7,"project\u002Fneutral\u002Fprivacy","sergiotapia",[395,391,38,396,11,32],"27536991","maker\u002Fneutral\u002Fprivacy",[133,203,32,252,134,38],[399,203,44,366,60,38],"27537215",[401,203,44,366,134,38],"27549058",[403,33,44,256,163,38],"27537160",[405,33,38,381,11,32],"27537202",[154,18,44,256,155,38],[408,18,38,388,11,32],"27537027",[410,411,38,267,170,38],"27546554",11,[413,411,38,346,414,38],"27610608","unraveller",[416,193,32,230,417,38],"27537100","benjamoon",[419,193,44,420,60,38],"27537125","maker\u002Fneutral\u002Fperformance",[422,193,38,423,424,38],"27539083","other\u002Fneutral\u002Fperformance","deergomoo",[108,426,42,246,109,38],13,[428,426,44,429,60,38],"27540334","maker\u002Fneutral\u002Fdesign",[169,431,44,209,170,38],14,[433,434,42,435,436,38],"27539526",15,"maker\u002Fpositive\u002Fnone","brotzky",[438,30,42,207,439,38],"27541625","HaD_XIII",[173,441,44,209,174,38],17,[443,441,38,381,11,32],"27537311",[445,446,44,276,447,38],"27539056",18,"michaelmior",[449,446,44,276,60,38],"27539123",[],[452,457,462,466,470,475],{"id":453,"name":454,"points":455,"category":456},"27606099","iPod.js",866,"creative",{"id":458,"name":459,"points":460,"category":461},"27592473","Spark Bible",347,"consumer_social",{"id":463,"name":464,"points":465,"category":461},"27599470","Multiverse.plus",281,{"id":467,"name":468,"points":469,"category":461},"27568709","Hacker News Doppelgänger",246,{"id":471,"name":472,"points":473,"category":474},"27592822","Intuitive Python",181,"learning_science",{"id":476,"name":477,"points":478,"category":479},"27556061","steez.news",177,"finance_crypto",false,"v2",{"id":483,"name":5,"line":6,"ai":480,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":484,"top":18,"kw":485,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":486,"url":9,"mix":487,"praise":96,"objection":113,"sub":21},27536878,0.07,[21,24,25,26],"3553113511353403533310053353435133015453",[30,31,32,33],1793991029568]