[{"data":1,"prerenderedAt":381},["ShallowReactive",2],{"navigation_docs":3,"-data-ops-message-queues":209,"-data-ops-message-queues-surround":378},[4,8,50,75,133,149,162,171,205],{"title":5,"path":6,"stem":7},"Introduction","\u002Fintroduction","0.introduction",{"title":9,"path":10,"stem":11,"children":12,"page":49},"Company","\u002Fcompany","1.company",[13,17,21,25,29,33,37,41,45],{"title":14,"path":15,"stem":16},"About","\u002Fcompany\u002Fabout","1.company\u002F0.about",{"title":18,"path":19,"stem":20},"Values","\u002Fcompany\u002Fvalues","1.company\u002F1.values",{"title":22,"path":23,"stem":24},"Communication","\u002Fcompany\u002Fcommunication","1.company\u002Fcommunication",{"title":26,"path":27,"stem":28},"Competition","\u002Fcompany\u002Fcompetition","1.company\u002Fcompetition",{"title":30,"path":31,"stem":32},"Hybrid Working","\u002Fcompany\u002Fhybrid-working","1.company\u002Fhybrid-working",{"title":34,"path":35,"stem":36},"Operations","\u002Fcompany\u002Foperations","1.company\u002Foperations",{"title":38,"path":39,"stem":40},"Policies","\u002Fcompany\u002Fpolicies","1.company\u002Fpolicies",{"title":42,"path":43,"stem":44},"Product","\u002Fcompany\u002Fproduct","1.company\u002Fproduct",{"title":46,"path":47,"stem":48},"Security","\u002Fcompany\u002Fsecurity","1.company\u002Fsecurity",false,{"title":51,"path":52,"stem":53,"children":54,"page":49},"People Ops","\u002Fpeople-ops","2.people-ops",[55,59,63,67,71],{"title":56,"path":57,"stem":58},"Compensation","\u002Fpeople-ops\u002Fcompensation","2.people-ops\u002Fcompensation",{"title":60,"path":61,"stem":62},"Education","\u002Fpeople-ops\u002Feducation","2.people-ops\u002Feducation",{"title":64,"path":65,"stem":66},"Expenses","\u002Fpeople-ops\u002Fexpenses","2.people-ops\u002Fexpenses",{"title":68,"path":69,"stem":70},"Holiday & Leave","\u002Fpeople-ops\u002Fleave","2.people-ops\u002Fleave",{"title":72,"path":73,"stem":74},"Onboarding","\u002Fpeople-ops\u002Fonboarding","2.people-ops\u002Fonboarding",{"title":76,"path":77,"stem":78,"children":79,"page":49},"Engineering","\u002Fengineering","3.engineering",[80,84,88,92,96,117,121,125,129],{"title":81,"path":82,"stem":83},"Development Setup","\u002Fengineering\u002Fdevelopment-setup","3.engineering\u002F1.development-setup",{"title":85,"path":86,"stem":87},"Contributing","\u002Fengineering\u002Fcontributing","3.engineering\u002Fcontributing",{"title":89,"path":90,"stem":91},"Production Database","\u002Fengineering\u002Fdatabase-connection","3.engineering\u002Fdatabase-connection",{"title":93,"path":94,"stem":95},"Deployment","\u002Fengineering\u002Fdeployment","3.engineering\u002Fdeployment",{"title":97,"path":98,"stem":99,"children":100,"page":49},"Github","\u002Fengineering\u002Fgithub","3.engineering\u002Fgithub",[101,105,109,113],{"title":102,"path":103,"stem":104},"Packages","\u002Fengineering\u002Fgithub\u002Fpackages","3.engineering\u002Fgithub\u002Fpackages",{"title":106,"path":107,"stem":108},"Personal Access Token","\u002Fengineering\u002Fgithub\u002Fpersonal-access-token","3.engineering\u002Fgithub\u002Fpersonal-access-token",{"title":110,"path":111,"stem":112},"Troubleshooting","\u002Fengineering\u002Fgithub\u002Ftroubleshooting","3.engineering\u002Fgithub\u002Ftroubleshooting",{"title":114,"path":115,"stem":116},"Workflows","\u002Fengineering\u002Fgithub\u002Fworkflows","3.engineering\u002Fgithub\u002Fworkflows",{"title":118,"path":119,"stem":120},"Platform Ops","\u002Fengineering\u002Fplatform-ops","3.engineering\u002Fplatform-ops",{"title":122,"path":123,"stem":124},"Project Management","\u002Fengineering\u002Fproject-management","3.engineering\u002Fproject-management",{"title":126,"path":127,"stem":128},"Releases","\u002Fengineering\u002Frelease","3.engineering\u002Frelease",{"title":130,"path":131,"stem":132},"Tools","\u002Fengineering\u002Ftools","3.engineering\u002Ftools",{"title":134,"path":135,"stem":136,"children":137,"page":49},"Design","\u002Fdesign","4.design",[138,142,146],{"title":139,"path":140,"stem":141},"Branding","\u002Fdesign\u002Fbranding","4.design\u002Fbranding",{"title":143,"path":144,"stem":145},"Design Thinking","\u002Fdesign\u002Fdesign-thinking","4.design\u002Fdesign-thinking",{"title":130,"path":147,"stem":148},"\u002Fdesign\u002Ftools","4.design\u002Ftools",{"title":150,"path":151,"stem":152,"children":153,"page":49},"Sales","\u002Fsales","4.sales",[154,158],{"title":155,"path":156,"stem":157},"Customer Onboarding","\u002Fsales\u002Fonboarding","4.sales\u002Fonboarding",{"title":159,"path":160,"stem":161},"Sales Tools","\u002Fsales\u002Ftools","4.sales\u002Ftools",{"title":163,"path":164,"stem":165,"children":166,"page":49},"Marketing","\u002Fmarketing","5.marketing",[167],{"title":168,"path":169,"stem":170},"Messaging","\u002Fmarketing\u002Fmessaging","5.marketing\u002Fmessaging",{"title":172,"path":173,"stem":174,"children":175,"page":49},"Data Ops","\u002Fdata-ops","6.data-ops",[176,185,189,193,197,201],{"title":177,"path":178,"stem":179,"children":180,"page":49},"Capability Exchange","\u002Fdata-ops\u002Fcapability-exchange","6.data-ops\u002FCapability Exchange",[181],{"title":182,"path":183,"stem":184},"Leaderboard Calculation","\u002Fdata-ops\u002Fcapability-exchange\u002Fleaderboard-calculation","6.data-ops\u002FCapability Exchange\u002Fleaderboard-calculation",{"title":186,"path":187,"stem":188},"Account Portal (CAS)","\u002Fdata-ops\u002Faccount-portal","6.data-ops\u002Faccount-portal",{"title":190,"path":191,"stem":192},"Adding Products","\u002Fdata-ops\u002Faddin-products","6.data-ops\u002Faddin-products",{"title":194,"path":195,"stem":196},"Adding Vendors","\u002Fdata-ops\u002Fadding-vendors","6.data-ops\u002Fadding-vendors",{"title":198,"path":199,"stem":200},"Message Queues","\u002Fdata-ops\u002Fmessage-queues","6.data-ops\u002Fmessage-queues",{"title":202,"path":203,"stem":204},"Refreshing Vendors","\u002Fdata-ops\u002Frefreshing-vendors","6.data-ops\u002Frefreshing-vendors",{"title":206,"path":207,"stem":208},"Glossary","\u002Fglossary","glossary",{"id":210,"title":198,"body":211,"description":363,"extension":372,"links":373,"meta":374,"navigation":375,"path":199,"seo":376,"stem":200,"__hash__":377},"docs\u002F6.data-ops\u002Fmessage-queues.md",{"type":212,"value":213,"toc":362},"minimark",[214,219,224,233,237,240,248,251,296,299,303,306,311],[215,216,218],"h2",{"id":217},"rabbitmq-queues-n8n-integration","RabbitMQ Queues & n8n Integration",[220,221,223],"h3",{"id":222},"overview","Overview",[225,226,227,228,232],"p",{},"This page details the implementation and registry of RabbitMQ message queues within our system. Our RabbitMQ infrastructure is primarily utilized by the ",[229,230,231],"strong",{},"n8n automation system"," to decouple processes, manage event-driven workloads, and prevent rate-limiting during large data operations.",[220,234,236],{"id":235},"naming-convention-strategy","Naming Convention Strategy",[225,238,239],{},"To ensure consistency and make debugging easier, all n8n-related queues follow a strict naming pattern:",[225,241,242],{},[229,243,244],{},[245,246,247],"code",{},"dpe.internal.trigger.[workflowname]",[225,249,250],{},"Here is the breakdown of this naming taxonomy:",[252,253,254,267,280,288],"ul",{},[255,256,257,262,263,266],"li",{},[229,258,259],{},[245,260,261],{},"dpe",": Stands for ",[229,264,265],{},"Data Processing Unit",". This namespaces the queue to data-specific operations.",[255,268,269,274,275,279],{},[229,270,271],{},[245,272,273],{},"internal",": Indicates that this queue is exclusively used internally by the DPE and data tasks. It is fully isolated and ",[276,277,278],"em",{},"not"," shared with the main backend application.",[255,281,282,287],{},[229,283,284],{},[245,285,286],{},"trigger",": Denotes the operational purpose of the queue—messages pushed here are specifically meant to trigger an n8n workflow.",[255,289,290,295],{},[229,291,292],{},[245,293,294],{},"[workflowname]",": Directly maps the queue to the downstream workflow it activates. This 1:1 mapping makes it incredibly easy for developers to identify and trace connected workflows.",[297,298],"hr",{},[220,300,302],{"id":301},"queue-registry","Queue Registry",[225,304,305],{},"The table below tracks our active RabbitMQ queues, their intended purpose, and the specific n8n workflows they trigger.",[225,307,308],{},[276,309,310],{},"Note: When adding new queues to the system, please ensure this table is updated.",[312,313,314,333],"table",{},[315,316,317],"thead",{},[318,319,320,324,327,330],"tr",{},[321,322,323],"th",{},"Queue Name",[321,325,326],{},"Purpose",[321,328,329],{},"Triggered Workflow",[321,331,332],{},"n8n Execution Link",[334,335,336],"tbody",{},[318,337,338,346,349,354],{},[339,340,341],"td",{},[229,342,343],{},[245,344,345],{},"dpe.internal.trigger.vendor.refresh",[339,347,348],{},"Consumes scheduled messages to orchestrate the monthly data refresh for utilized vendors (logo, status, DTO).",[339,350,351],{},[245,352,353],{},"triggerVendorRefreshV1.0",[339,355,356],{},[357,358,361],"a",{"href":359,"target":360},"https:\u002F\u002Fn8n.esp-prod:5678\u002Fworkflow\u002F14jB7k6FonhNCNDH\u002Fexecutions\u002F1363604","_blank","View Workflow Execution",{"title":363,"searchDepth":364,"depth":364,"links":365},"",2,[366],{"id":217,"depth":364,"text":218,"children":367},[368,370,371],{"id":222,"depth":369,"text":223},3,{"id":235,"depth":369,"text":236},{"id":301,"depth":369,"text":302},"md",null,{},true,{"title":198,"description":363},"EGUC6hpRYK-y6Q4uap4coz4VR8479oz7qgAokHEzDZ8",[379,380],{"title":194,"path":195,"stem":196,"description":363,"children":-1},{"title":202,"path":203,"stem":204,"description":363,"children":-1},1778263959098]