[{"data":1,"prerenderedAt":767},["ShallowReactive",2],{"project-39643136":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":33,"aspects":34,"strip":44,"post_text":47,"what":48,"said":104,"maker_in_thread":170,"shape":181,"grid":186,"attempts":721,"same_week":731,"maker_shows":18,"maker_hidden":760,"reader_version":761,"card":762},"39643136","Hatchet","Open-source distributed task queue","title","Show HN: Hatchet – Open-source distributed task queue","https:\u002F\u002Fgithub.com\u002Fhatchet-dev\u002Fhatchet","github.com","abelanger",1709917655,2024,578,189,48,3515,2,"legend","dev_tools","task queue","library",[21,24,25,26],"postgres queue","distributed workers","workflow orchestration","curious",-0.01,{"positive":30,"neutral":31,"mixed":32,"critical":30},13,51,1,78,{"idea":35,"design":38,"execution":40,"pricing":41,"performance":42,"docs":43},{"positive":36,"critical":37},4,9,{"positive":39,"critical":39},0,{"positive":32,"critical":39},{"positive":32,"critical":32},{"positive":32,"critical":32},{"positive":39,"critical":32},[45,39,39,45,39,39,32,45,45,45,39,32,45,45,32,45,45,46,45,36,18,45,36,36,46,45,45,36,45,45,45,18,45,45,45,32,39,32,45,45],3,5,"Hello HN, we're Gabe and Alexander from Hatchet (https:\u002F\u002Fhatchet.run), we're working on an open-source, distributed task queue. It's an alternative to tools like Celery for Python and BullMQ for Node.js, primarily focused on reliability and observability. It uses Postgres for the underlying queue.\n\nWhy build another managed queue? We wanted to build something with the benefits of full transactional enqueueing - particularly for dependent, DAG-style execution - and felt strongly that Postgres solves for 99.9% of queueing use-cases better than most alternatives (Celery uses Redis or RabbitMQ as ",{"problem":49,"audience":55,"pricing":62,"motivation":71,"time_to_build":75,"stack":76,"openness":101,"stage":102,"team_size":103},{"value":50,"source":51,"evidence":52},"Reliable, observable task queueing and DAG-style workflow execution without Redis or RabbitMQ brokers","maker",[53],{"id":54},"post",{"value":56,"source":51,"evidence":57},"Application developers running background tasks in Python and Node.js",[58,59],{"id":54},{"id":60,"by":11,"text":61},"39649444","We did it because there are methods that should be accessed which don't map to `args` cleanly. For example, we let users call `context.log`, `context.done` (to determine whether…",{"value":63,"source":51,"evidence":64},"Self-hosted MIT-licensed core; cloud version planned as paid, pricing not yet published",[65,68],{"id":66,"by":11,"text":67},"39646788","Yep, we're backed by YC in the W24 batch - this is evident on our landing page [1]. We're both second time CTOs and we've been on both sides of this, as consumers of and creators…",{"id":69,"by":11,"text":70},"39647101","Thank you! > Do you publish pricing for your cloud offering? Not yet, we're rolling out the cloud offering slowly to make sure we don't experience any widespread outages. As soon…",{"value":72,"source":51,"evidence":73},"Make Postgres-backed queues with transactional enqueueing and built-in observability",[74],{"id":54},null,[77,81,85,89,93,97],{"value":78,"source":51,"evidence":79},"PostgreSQL",[80],{"id":54},{"value":82,"source":51,"evidence":83},"gRPC",[84],{"id":54},{"value":86,"source":51,"evidence":87},"Go",[88],{"id":60,"by":11,"text":61},{"value":90,"source":51,"evidence":91},"Python SDK",[92],{"id":60,"by":11,"text":61},{"value":94,"source":51,"evidence":95},"TypeScript SDK",[96],{"id":69,"by":11,"text":70},{"value":98,"source":51,"evidence":99},"RabbitMQ",[100],{"id":54},"open_source","beta","team",{"praise":105,"objections":113,"requests":124,"questions":137,"alternatives":151},[106],{"value":107,"source":108,"evidence":109},"Interest in Postgres-based queueing and River comparison","commenter",[110],{"id":111,"by":11,"text":112},"39649469","The underlying queue is very similar. See this comment, which details how we're different from a library client: https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=39644327. We also have the…",[114,120],{"value":115,"source":108,"evidence":116},"RabbitMQ dependency is confusing for a Postgres-based queue",[117],{"id":118,"by":11,"text":119},"39644137","Thank you, appreciate the kind words! What boxes are you looking to check? Yes, I'm not a fan of the RabbitMQ dependency either - see here for the reasoning:…",{"value":121,"source":108,"evidence":122},"Concern that a hyperscaler could offer a competing hosted service under MIT license",[123],{"id":69,"by":11,"text":70},[125,131],{"value":126,"source":51,"evidence":127},"Better visibility into argument serialization and typing",[128],{"id":129,"by":11,"text":130},"39644933","Appreciate it, thank you! We've spent quite a bit of time in the Celery Flower console. Admittedly it's been a while, I'm not sure if they've added views for chains\u002Fgroups\u002Fetc -…",{"value":132,"source":108,"evidence":133},"Support for fanning out child workflows from array results",[134],{"id":135,"by":11,"text":136},"39646219","You can execute a new workflow programmatically, for example see [1]. So people have triggered, for example, 50 child workflows from a parent step. As you've identified the…",[138,145],{"value":139,"source":108,"evidence":140},"Why take YC funding for dev infra",[141],{"id":142,"by":143,"text":144},"39653807","stephen","Wow, looks great! We currently happily use graphile-worker, and have two questions: > full transactional enqueueing Do you mean transactional within the same transaction as the…",{"value":146,"source":108,"evidence":147},"How the cloud business will make money from an open-source product",[148],{"id":149,"by":11,"text":150},"39653597","Nice, Waka looks cool! I've talked a bit about the tradeoffs with library-mode pollers, for example here: https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=39644327. Which isn't to say they…",[152,156,160,166],{"value":153,"source":51,"evidence":154},"Celery",[155],{"id":54},{"value":157,"source":51,"evidence":158},"BullMQ",[159],{"id":54},{"value":161,"source":108,"evidence":162},"Temporal",[163],{"id":164,"by":11,"text":165},"39644550","It's very similar - I used Temporal at a previous company to run a couple million workflows per month. The gRPC networking with workers is the most similar component, I…",{"value":167,"source":108,"evidence":168},"River",[169],{"id":111,"by":11,"text":112},{"comments":171,"answered":172,"key":173},35,26,[174,175,178],{"id":118,"text":119},{"id":176,"text":177},"39653677","Presumably there'd be a messages table that you listen\u002Fnotify on, and you'd replay messages that weren't consumed when a listener rejoins. But yeah, this is the overhead I was…",{"id":179,"text":180},"39645123","I like that idea, basically the first HTTP request ensures the worker gets spun up on a lambda, and the task gets picked up on the next poll when the worker is running. We…",{"commenters":182,"max_depth":183,"maker_replies":171,"first_comment_mins":184,"lifespan_hours":185},99,11,19,96,[187,191,193,197,200,201,203,205,207,209,212,214,216,218,220,223,226,229,231,234,237,239,242,244,247,249,251,254,257,260,264,268,271,273,276,280,283,285,288,291,294,297,300,302,304,307,310,313,315,318,321,323,325,328,332,335,338,340,342,344,347,349,352,355,357,360,361,365,369,371,373,376,378,380,382,385,389,391,394,397,400,403,407,411,412,415,418,420,424,425,428,431,435,436,439,443,446,448,450,452,455,457,459,461,464,465,468,472,474,477,480,482,484,487,488,493,496,500,502,506,507,510,513,515,517,519,521,524,528,531,533,537,539,543,545,548,552,555,558,561,565,569,571,573,575,578,580,584,588,590,594,598,600,604,609,611,615,617,621,624,626,629,632,634,639,643,645,647,651,656,660,662,665,667,670,674,678,682,685,688,692,696,700,702,706,708,711,715,717],[188,39,45,189,190,39],"39643991","project\u002Fmixed\u002Fidea","kcorbitt",[118,39,39,192,11,32],"maker\u002Fneutral\u002Fnone",[194,39,39,195,196,39],"39647886","commenter\u002Fneutral\u002Fnone","jaggederest",[198,39,39,195,199,39],"39651534","hosh",[176,39,39,195,11,32],[202,39,39,195,196,39],"39654661",[204,39,39,195,199,39],"39655867",[206,39,39,195,196,39],"39657159",[208,39,39,195,199,39],"39655861",[210,39,39,195,211,39],"39655893","yencabulator",[213,39,39,195,199,39],"39656434",[215,39,39,195,196,39],"39657180",[217,39,39,195,199,39],"39657571",[219,39,39,195,211,39],"39660110",[221,39,45,222,190,39],"39647932","project\u002Fneutral\u002Fdesign",[224,39,39,195,225,39],"39645512","BenjieGillam",[227,39,45,228,190,39],"39647940","project\u002Fneutral\u002Fexecution",[230,39,45,192,225,39],"39648175",[232,39,39,195,233,39],"39646111","doctorpangloss",[235,39,39,195,236,39],"39646667","eska",[238,39,39,195,233,39],"39646910",[240,39,39,195,241,39],"39647315","danielovichdk",[243,39,39,195,236,39],"39647710",[245,39,39,195,246,39],"39649731","necovek",[248,39,39,195,241,39],"39650308",[250,39,39,195,199,39],"39651567",[252,39,39,195,253,39],"39647092","blandflakes",[255,39,39,195,256,39],"39651689","otabdeveloper4",[258,39,39,195,259,39],"39647059","ako",[261,39,32,262,263,39],"39650305","project\u002Fcritical\u002Fidea","throwawaymaths",[265,39,39,266,267,39],"39650905","other\u002Fneutral\u002Fnone","cpursley",[269,39,39,266,270,39],"39651364","zepolen",[272,39,39,266,199,39],"39651529",[274,39,39,266,275,39],"39651858","sixdimensional",[277,39,45,278,279,39],"39647179","project\u002Fneutral\u002Fidea","bevekspldnw",[281,39,39,266,282,39],"39648940","renegade-otter",[284,39,39,195,279,39],"39649375",[286,39,32,262,287,39],"39651174","rubenfiszel",[289,39,46,290,211,39],"39655895","project\u002Fpositive\u002Fnone",[292,39,45,278,293,39],"39652574","simplyinfinity",[295,39,39,195,296,39],"39652765","magic_hamster",[298,32,45,278,299,39],"39644543","jerrygenser",[179,32,39,301,11,32],"maker\u002Fneutral\u002Fidea",[303,32,39,195,299,39],"39645490",[305,32,39,266,306,39],"39647156","alexbouchard",[308,32,39,266,309,39],"39647854","tonyhb",[311,32,45,312,299,39],"39650910","project\u002Fneutral\u002Fnone",[314,32,39,266,309,39],"39672687",[316,32,39,266,317,39],"39650089","jsmeaton",[319,32,39,266,320,39],"39650936","lysecret",[322,32,39,266,275,39],"39651913",[324,32,39,195,211,39],"39655909",[326,32,39,266,327,39],"39681765","jamescmartinez",[329,18,45,330,331,39],"39645209","project\u002Fneutral\u002Fpricing","leetrout",[333,18,32,262,334,39],"39645268","MuffinFlavored",[336,18,39,266,337,39],"39645357","Kinrany",[339,18,45,278,331,39],"39646344",[341,18,39,266,334,39],"39648403",[343,18,45,278,331,39],"39648645",[345,18,39,266,346,39],"39649406","Aeolun",[66,18,39,348,11,32],"maker\u002Fneutral\u002Fpricing",[350,18,45,348,351,39],"39653962","echelon",[353,18,39,266,354,39],"39650345","wodenokoto",[356,18,39,266,331,39],"39651492",[358,45,45,278,359,39],"39643927","bluehadoop",[164,45,39,278,11,32],[362,45,32,363,364,39],"39646064","project\u002Fcritical\u002Fpricing","bicijay",[366,45,39,367,368,39],"39647745","other\u002Fneutral\u002Fpricing","mfateev",[370,45,39,367,346,39],"39649420",[372,45,39,367,364,39],"39658844",[374,45,39,266,375,39],"39651696","dangoodmanUT",[377,45,39,266,11,32],"39653865",[379,36,45,278,337,39],"39645312",[381,36,39,278,11,32],"39649524",[383,36,39,266,384,39],"39650640","rapnie",[386,36,39,387,388,39],"39651097","other\u002Fneutral\u002Fidea","bruth",[390,36,32,262,337,39],"39655626",[392,46,46,290,393,39],"39644200","toddmorey",[395,46,45,278,396,39],"39644287","rad_gruchalski",[398,46,39,399,11,32],"39644404","project\u002Fpositive\u002Fidea",[401,46,46,402,393,39],"39644429","maker\u002Fpositive\u002Fnone",[404,405,45,312,406,39],"39645379",6,"sroussey",[408,409,46,290,410,39],"39644741",7,"SCUSKU",[129,409,39,312,11,32],[413,409,39,266,414,39],"39646503","9dev",[416,409,39,266,417,39],"39649476","kamikaz1k",[419,409,39,266,414,39],"39650413",[421,422,45,330,423,39],"39646725",8,"fuddle",[69,422,39,330,11,32],[426,37,46,399,427,39],"39643642","kevinlu1248",[429,37,39,266,430,39],"39643727","tasn",[432,433,45,278,434,39],"39647366",10,"beerkat",[111,433,39,399,11,32],[437,183,45,312,438,39],"39646015","cybice",[440,441,45,278,442,39],"39646300",12,"moribvndvs",[444,441,45,278,445,39],"39646374","herval",[447,441,45,278,442,39],"39646719",[449,441,32,262,445,39],"39647999",[451,441,39,266,309,39],"39648268",[453,441,32,262,454,39],"39646511","kbar13",[456,441,39,195,442,39],"39646795",[458,441,39,278,11,32],"39647154",[460,441,46,402,442,39],"39647520",[462,30,45,278,463,39],"39650329","welder",[149,30,39,330,11,32],[466,30,46,467,463,39],"39653715","project\u002Fpositive\u002Fpricing",[469,470,45,228,471,39],"39643364",14,"topicseed",[473,470,39,228,11,32],"39643881",[475,470,46,476,471,39],"39644055","maker\u002Fpositive\u002Fexecution",[478,470,45,228,479,39],"39644522","spenczar5",[481,470,39,228,11,32],"39647221",[483,470,45,228,479,39],"39647844",[485,470,45,228,486,39],"39645566","sigmarule",[135,470,39,228,11,32],[489,490,46,491,492,39],"39646077",15,"project\u002Fpositive\u002Fperformance","treesciencebot",[494,490,39,495,11,32],"39647307","project\u002Fneutral\u002Fperformance",[497,498,45,278,499,39],"39643782",16,"pyrossh",[501,498,39,495,11,32],"39644327",[503,504,45,222,505,39],"39647915",17,"krawczstef",[60,504,39,222,11,32],[508,504,45,509,417,39],"39649503","maker\u002Fneutral\u002Fdesign",[511,504,39,512,505,39],"39649823","commenter\u002Fneutral\u002Fdesign",[514,504,45,509,505,39],"39649814",[142,516,32,262,143,39],18,[518,516,39,301,11,32],"39654002",[520,516,39,195,143,39],"39654543",[522,184,46,399,523,39],"39645091","acaloiar",[525,526,45,278,527,39],"39646970",20,"mfrye0",[529,526,39,530,11,32],"39649456","maker\u002Fneutral\u002Fdocs",[532,526,46,290,527,39],"39655279",[534,535,45,330,536,39],"39651591",21,"cebert",[538,535,39,348,11,32],"39653084",[540,541,39,387,542,39],"39645974",22,"hinkley",[544,541,39,192,11,32],"39647338",[546,541,39,266,547,39],"39649944","lelanthran",[549,550,45,495,551,39],"39644734",23,"dalberto",[553,554,39,387,287,39],"39651231",24,[556,554,39,367,557,39],"39651748","HoyaSaxa",[559,554,39,560,287,39],"39651892","commenter\u002Fneutral\u002Fidea",[562,563,45,222,564,39],"39643575",25,"tzahifadida",[566,563,45,567,568,39],"39643663","project\u002Fneutral\u002Fdocs","anentropic",[570,563,45,222,568,39],"39645790",[572,563,39,509,11,32],"39643940",[574,563,39,512,564,39],"39646840",[576,172,45,312,577,39],"39646807","rheckart",[579,172,39,192,11,32],"39647241",[581,582,45,222,583,39],"39650530",27,"notpushkin",[585,586,45,567,587,39],"39643427",28,"nextworddev",[589,586,39,530,11,32],"39644042",[591,592,45,278,593,39],"39643868",29,"radus",[595,596,32,262,597,39],"39649341",30,"dataangel",[599,596,39,195,11,32],"39653926",[601,602,46,399,603,39],"39647943",31,"iangregson",[605,606,32,607,608,39],"39643632",32,"project\u002Fcritical\u002Fdocs","Kluggy",[610,606,39,530,11,32],"39644068",[612,613,45,312,614,39],"39651013",33,"wereHamster",[616,613,39,192,11,32],"39654040",[618,619,45,278,620,39],"39649442",34,"Yanael",[622,619,39,266,623,39],"39649804","leafmeal",[625,619,39,266,620,39],"39653040",[627,171,45,301,628,39],"39680082","iacguy",[630,631,45,278,354,39],"39650359",36,[633,631,39,530,11,32],"39653663",[635,636,39,637,638,39],"39650032",37,"other\u002Fneutral\u002Fdesign","serbrech",[640,641,45,278,642,39],"39645672",38,"zwaps",[644,641,39,301,11,32],"39646328",[646,641,45,278,642,39],"39649235",[648,649,39,266,650,39],"39649393",39,"CoolCold",[652,653,32,654,655,39],"39647257",40,"project\u002Fcritical\u002Fperformance","fcsp",[657,653,39,658,659,39],"39647319","commenter\u002Fneutral\u002Fperformance","mhh__",[661,653,39,658,479,39],"39647887",[663,653,39,658,664,39],"39649682","jlokier",[666,653,39,658,659,39],"39650440",[668,653,39,669,11,32],"39647419","maker\u002Fneutral\u002Fperformance",[671,672,39,637,673,39],"39651722",41,"jbergstroem",[675,676,32,262,677,39],"39649268",42,"peterisdirsa",[679,680,39,266,681,39],"39645296",43,"Fiahil",[683,680,39,266,684,39],"39645348","vector_spaces",[686,680,39,266,687,39],"39645572","jeremyjh",[689,690,45,278,691,39],"39653376",44,"pdksam",[693,694,45,567,695,39],"39649362",45,"hannasm",[697,698,45,222,699,39],"39649033",46,"Nukesor",[701,698,39,195,11,32],"39649385",[703,704,45,567,705,39],"39643464",47,"sixhobbits",[707,704,45,567,705,39],"39643489",[709,704,39,710,11,32],"39643631","maker\u002Fpositive\u002Fdocs",[712,16,32,713,714,39],"39646582","project\u002Fcritical\u002Fnone","ctoth",[716,16,39,195,11,32],"39649482",[718,719,46,399,720,39],"39650928",49,"adeptima",[722,725,726],{"id":723,"t":724,"points":409,"comments":18},"38970038",1705076859,{"id":4,"t":12,"points":14,"comments":15},{"id":727,"t":728,"points":729,"comments":730},"43572733",1743700674,240,74,[732,737,741,746,750,755],{"id":733,"name":734,"points":735,"category":736},"39675807","Trangram",738,"creative",{"id":738,"name":739,"points":740,"category":20},"39692801","Flox 1.0",382,{"id":742,"name":743,"points":744,"category":745},"39643833","Wallstreetlocal",299,"finance_crypto",{"id":747,"name":748,"points":749,"category":20},"39628285","Flyde",298,{"id":751,"name":752,"points":753,"category":754},"39666865","Teable",279,"data",{"id":756,"name":757,"points":758,"category":759},"39690725","Marker",269,"productivity",false,"v2",{"id":763,"name":5,"line":6,"ai":760,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":764,"maker":11,"domain":10,"tier":19,"attempts":45,"strip":765,"url":9,"mix":766,"praise":107,"objection":115,"sub":21},39643136,[21,24,25,26],"3003001333013313353423445334333233310133",[30,31,32,30],1794036650948]