Files
nexus/sreweekly/articles/461/04-managing-trace-volume-at-monday-com.html
2026-09-12 17:23:01 +08:00

74 lines
34 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta http-equiv="X-UA-Compatible" content="ie=edge"> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-WMDX8GX');</script> <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700,900&display=swap" rel="stylesheet"><link rel="shortcut icon" type="image/ico" href="https://engineering.monday.com/favicon.ico"/><link media="all" href="https://engineering.monday.com/wp-content/cache/autoptimize/css/autoptimize_2edb8e3f6b03ed601e1fab13d93380cf.css" rel="stylesheet"><title>Managing Trace Volume at monday.com - monday AI engineering</title><meta name='robots' content='max-image-preview:large' /><meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1"/><link rel="canonical" href="https://engineering.monday.com/managing-trace-volume-at-monday-com/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="Managing Trace Volume at monday.com - monday AI engineering" /><meta property="og:description" content="At monday.com, our distributed systems handle tens of millions of requests daily, generating a massive volume of diagnostic information that ..." /><meta property="og:url" content="https://engineering.monday.com/managing-trace-volume-at-monday-com/" /><meta property="og:site_name" content="monday AI engineering" /><meta property="article:tag" content="Infrastructure" /><meta property="article:section" content="Engineering" /><meta property="article:published_time" content="2024-11-14T14:16:18+00:00" /><meta property="article:modified_time" content="2024-11-14T18:33:11+00:00" /><meta property="og:updated_time" content="2024-11-14T18:33:11+00:00" /><meta property="og:image" content="https://engineering.monday.com/wp-content/uploads/2024/11/Managing-Trace-Volume-at-monday.com_-1024x512.png" /><meta property="og:image:secure_url" content="https://engineering.monday.com/wp-content/uploads/2024/11/Managing-Trace-Volume-at-monday.com_-1024x512.png" /><meta property="og:image:width" content="1024" /><meta property="og:image:height" content="512" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:description" content="At monday.com, our distributed systems handle tens of millions of requests daily, generating a massive volume of diagnostic information that ..." /><meta name="twitter:title" content="Managing Trace Volume at monday.com - monday AI engineering" /><meta name="twitter:image" content="https://engineering.monday.com/wp-content/uploads/2024/11/Managing-Trace-Volume-at-monday.com_.png" /> <script type='application/ld+json' class='yoast-schema-graph yoast-schema-graph--main'>{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://engineering.monday.com/#website","url":"https://engineering.monday.com/","name":"monday AI engineering","description":"For those who build different ","potentialAction":{"@type":"SearchAction","target":"https://engineering.monday.com/?s={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"ImageObject","@id":"https://engineering.monday.com/managing-trace-volume-at-monday-com/#primaryimage","url":"https://engineering.monday.com/wp-content/uploads/2024/11/Managing-Trace-Volume-at-monday.com_.png","width":4800,"height":2400},{"@type":"WebPage","@id":"https://engineering.monday.com/managing-trace-volume-at-monday-com/#webpage","url":"https://engineering.monday.com/managing-trace-volume-at-monday-com/","inLanguage":"en-US","name":"Managing Trace Volume at monday.com - monday AI engineering","isPartOf":{"@id":"https://engineering.monday.com/#website"},"primaryImageOfPage":{"@id":"https://engineering.monday.com/managing-trace-volume-at-monday-com/#primaryimage"},"datePublished":"2024-11-14T14:16:18+00:00","dateModified":"2024-11-14T18:33:11+00:00","author":{"@id":"https://engineering.monday.com/#/schema/person/ef11a2e1994204cede8beec66a95e3f7"}},{"@type":["Person"],"@id":"https://engineering.monday.com/#/schema/person/ef11a2e1994204cede8beec66a95e3f7","name":"Jakub Sok\u00f3\u0142","image":{"@type":"ImageObject","@id":"https://engineering.monday.com/#authorlogo","url":"https://secure.gravatar.com/avatar/c0f1e9a20495bf721a9800bd01501e379d953cd83cd5c9c30106f7748fa63c42?s=96&d=mm&r=g","caption":"Jakub Sok\u00f3\u0142"},"sameAs":[]}]}</script> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://engineering.monday.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fengineering.monday.com%2Fmanaging-trace-volume-at-monday-com%2F" /><link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://engineering.monday.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fengineering.monday.com%2Fmanaging-trace-volume-at-monday-com%2F&#038;format=xml" /> <script type="text/javascript" src="https://engineering.monday.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://engineering.monday.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" src="https://engineering.monday.com/wp-content/plugins/wp-user-avatar/assets/flatpickr/flatpickr.min.js?ver=4.16.3" id="ppress-flatpickr-js"></script> <script type="text/javascript" src="https://engineering.monday.com/wp-content/plugins/wp-user-avatar/assets/select2/select2.min.js?ver=4.16.3" id="ppress-select2-js"></script> <link rel="https://api.w.org/" href="https://engineering.monday.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://engineering.monday.com/wp-json/wp/v2/posts/10789" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://engineering.monday.com/xmlrpc.php?rsd" /><meta name="generator" content="WordPress 6.9.7" /><link rel='shortlink' href='https://engineering.monday.com/?p=10789' /> <script>window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'pageMetaData',
'page': {
'type' : 'post',
'template' : 'blog post',
'title' : 'Managing Trace Volume at monday.com',
'topic' : '',
'category' : 'Engineering',
'language' : 'en-US'
}
});</script> <link rel="icon" href="https://engineering.monday.com/wp-content/uploads/2026/06/cropped-logo-5-32x32.png" sizes="32x32" /><link rel="icon" href="https://engineering.monday.com/wp-content/uploads/2026/06/cropped-logo-5-192x192.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://engineering.monday.com/wp-content/uploads/2026/06/cropped-logo-5-180x180.png" /><meta name="msapplication-TileImage" content="https://engineering.monday.com/wp-content/uploads/2026/06/cropped-logo-5-270x270.png" /><link rel="stylesheet" href="https://use.typekit.net/byq3jhd.css" as="font"/></head><body class="wp-singular post-template-default single single-post postid-10789 single-format-standard wp-theme-monday rnd-blog"> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WMDX8GX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>window.BigBrainQ = window.BigBrainQ || [];
window.BigBrain = window.BigBrain || function(){
args = Array.prototype.slice.call(arguments)
if(args[0] == 'track'){
event_props = {}
if(args.length == 3)
event_props = args[2];
event_props['timestamp'] = parseInt(new Date().getTime()/1000);
if(args.length == 2) args.push(event_props);
else args[2] = event_props;
}
window.BigBrainQ.push(args);
};
(function(d,u,callback){
if (window.BigBrainInit) return;
window.BigBrainInit = true;
var s = d.createElement('script');
s.type = 'text/javascript'
s.src = u;
s.async = true;
s.onreadystatechange = s.onload = function(){
var st = s.readyState;
if (!callback.done && (!st || /loaded|complete/.test(st))) {
callback.done = true;
callback();
}
};
(d.body || head).appendChild(s);
})(document, "https://d18vk66ftlazd2.cloudfront.net/bigbrain-1.0.min.js", function() {
window.BigBrain = new BigBrainTracker({bigbrain_url: 'https://data.bigbrain.me', send_immediately: true});
});
// This should report page_view in each page in the blog
var pathName = 'blog' + window.location.pathname;
BigBrain('track', 'page_view', {kind: pathName, source: 'blog'});</script> <div id="pin"></div><header id="main-header" class="shadow-sm border-bottom bg-white"><div class="container clearfix"><div class="float-left clearfix d-flex align-items-center h-100"> <a class="logo-image" alt="monday AI engineering" aria-label="logo" href="https://engineering.monday.com/"> <img src="https://engineering.monday.com/wp-content/uploads/2025/08/Sub-logo_monday-engineering_Black.png" alt="monday AI engineering" /> </a></div><div id="menu-wrapper" class="float-right clearfix align-items-center h-100 d-none d-md-flex"><div class="float-left"><form method="get" id="searchform" class="clearfix" action="https://engineering.monday.com/" role="search"> <input type="text" class="search-input float-left" name="s" value="" id="s" placeholder="Search..." /> <button type="submit" aria-label="search" class="submit float-left" name="submit" id="searchsubmit"></button></form></div><nav class="float-right"><div id="main-nav" class="menu-main-menu-container"><ul id="menu-main-menu" class="main-nav clearfix"><li id="menu-item-9454" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9454"><a href="https://monday.com">monday.com</a></li><li id="menu-item-9805" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9805"><a target="_blank" href="https://www.startupforstartup.com/?sfid=1860&#038;_sft_post_tag=rd-product-design">Podcasts</a></li><li id="menu-item-9455" class="custon-blue-bg menu-item menu-item-type-custom menu-item-object-custom menu-item-9455"><a href="https://monday.com/jobs">Join Us</a></li></ul></div></nav></div><div id="search-wrapper" class="d-none d-md-flex"></div><div class="mobile-toggles-wrapper float-right d-block d-md-none clearfix"><div id="toggle-search-menu" class="float-left"></div><div id="toggle-mobile-menu" class="float-right"></div></div></div></header><main data-post-id="10789"><section id="hero-wrapper"><div class="container"><div class="row"><div class="col-md-12"> <img class="img-fluid" src="https://engineering.monday.com/wp-content/uploads/2024/11/Managing-Trace-Volume-at-monday.com_.png" alt="Managing Trace Volume at monday.com"></div></div></div></section><section id="post-wrapper"><div class="container"><div class="row"><div id="article-section" class="col-md-12"><div class="author-social-media desktop-only"><div class="social-links clearfix d-flex align-items-center"><div style="display:flex;margin-bottom:10px;position:relative;" class="likes clearfix"> <a style="cursor:pointer;" aria-label="like" class="like-icon d-block" href="#" data-post-likes="152" data-post-id="10789"> <img class="img-fluid" src="https://res.cloudinary.com/monday-blogs/fl_lossy,f_auto/wp-blog/theme/icons/like.png" alt=""> </a> <span style="position:absolute;right:-20px;" class="likes-count likes-value d-block" data-post-id="10789">152</span></div> <a href="#" class="linkedin" aria-label="share on linkedin" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes, width=800,height=450'); return false;"></a> <a href="#" aria-label="share on facebook" class="facebook" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes, width=800,height=450'); return false;"></a> <a href="#" aria-label="share on twitter" class="twitter" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes, width=800,height=450'); return false;"></a></div></div><div class="tags-wrapper clearfix"><div class="card-tag float-left purple2 text-purple2">Infrastructure</div></div><h1 id="post-title">Managing Trace Volume at monday.com</h1><h4 id="post-subtitle"></h4><div class="author-wrapper clearfix"><div class="author-wrapper-inner single-author clearfix float-md-left"><div class="authors-list"><div class="author-row d-flex align-items-center"><div class="author-image"> <img alt='Jakub Sokół' src='https://secure.gravatar.com/avatar/c0f1e9a20495bf721a9800bd01501e379d953cd83cd5c9c30106f7748fa63c42?s=120&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/c0f1e9a20495bf721a9800bd01501e379d953cd83cd5c9c30106f7748fa63c42?s=240&#038;d=mm&#038;r=g 2x' class='avatar avatar-120 photo' height='120' width='120' decoding='async'/></div><div class="author-info float-left"><div class="author-name">Jakub Sokół</div><div class="post-info"> Nov 14, 2024<span class="dot-separator"></span>7 min read <span class="star"></span></div></div></div></div></div><div class="author-social-media float-md-right mobile-only"><div class="social-links clearfix d-flex align-items-center"> <a href="#" class="linkedin" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes, width=800,height=450'); return false;"></a> <a href="#" class="facebook" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes, width=800,height=450'); return false;"></a> <a href="#" class="twitter" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes, width=800,height=450'); return false;"></a></div></div></div><div id="post-content" class="color-purple2"><p>At monday.com, our distributed systems handle tens of millions of requests daily, generating a massive volume of diagnostic information that we need to monitor the health of our service, diagnose issues, and make informed decisions on which parts need more optimization.</p><p>Observability does not come for free. Handling this amount of data is a challenge on all sides—starting from generation (how to enforce standards?), the ingestion side (how to ensure we collect everything that is needed?), and finally, how to present the data to any engineer who needs it.</p><p>In this article, we will examine how we evolved our handling of tracing data and how our investment in open standards allowed us to build our tool and provide our developers with a better experience.</p><h3 class="wp-block-heading">When Trace Volume Floods the System</h3><p>Our team is focusing on being efficient in telemetry data collected from production &#8211; and recently, the tracing data we collect rose to excessive levels.&nbsp;The volume of observability data is a common topic with a typical solution: we introduced a low sampling rate for all spans generated from our production system. By adding sampling and some more simple heuristics (e.g., increased sampling of errors), this approach preserved much of the prior value at a significantly lower cost.</p><p>However, &#8220;a lot&#8221; is not &#8220;the same.&#8221; After the introduction of decreased sampling, there was a recurring theme of less occurring, harder-to-track problems that could no longer be solved using traces.</p><p>Fortunately, we have invested in the OpenTelemetry ecosystem for quite some time. Since the early days of our microservices architecture, we instrumented all Node.js-based microservices using OpenTelemetry libraries. As the infrastructure Observability team, we&#8217;re also deploying OpenTelemetry Collector as the shipper for all observability signals. These two decisions enabled us to develop our tool to help in uncommon cases.</p><h3 class="wp-block-heading">Ocean</h3><p>In cooperation with developers, we devised an idea to take back ownership of our monitoring data from the vendor, store it in our storage solution, and make it possible to replay small (time-wise) but complete information about the system&#8217;s state.</p><p>With this tool, whenever you have a rare situation that you need to understand fully, you just need to make sure that you know the exact time it happened. Then, you will get a better view of what happened in the same APM tool you use daily! Our backend will take your query, find all the traces related to it in our data layer, and send them to our APM vendor so you can get a clearer picture than before, but in the familiar tool.</p><figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="291" src="https://engineering.monday.com/wp-content/uploads/2024/11/Screenshot-2024-09-27-at-13.23.07-1024x291.png" alt="" class="wp-image-10807" srcset="https://engineering.monday.com/wp-content/uploads/2024/11/Screenshot-2024-09-27-at-13.23.07-1024x291.png 1024w, https://engineering.monday.com/wp-content/uploads/2024/11/Screenshot-2024-09-27-at-13.23.07-300x85.png 300w, https://engineering.monday.com/wp-content/uploads/2024/11/Screenshot-2024-09-27-at-13.23.07-768x218.png 768w, https://engineering.monday.com/wp-content/uploads/2024/11/Screenshot-2024-09-27-at-13.23.07-1536x437.png 1536w, https://engineering.monday.com/wp-content/uploads/2024/11/Screenshot-2024-09-27-at-13.23.07-2048x582.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure><p>We have picked Clickhouse as a database. As a column-oriented database, it offers excellent capability for querying the traces (so our filtering is fast) and built-in compression (perfect for dealing with highly repetitive data, like in spans), making it a popular choice for storing tracing data. There is also a ready-made exporter component for OpenTelemetry Collector for seamless integration.</p><p>Thanks to using an open-source data shipper, data is already under our control. We just needed to split our trace handling pipeline, but we must do it this time before it gets sampled. In more direct terms &#8211; from this snippet in the Collector configuration:</p><pre class="wp-block-code"><code class="">...
service:
pipelines: ...
traces:
receivers: [otlp]
processors: []
exporters: [spanmetrics/connector]
traces/sampled:
receivers: [spanmetrics/connector]
processors: [probabilisticsampler, batch]
exporters: [vendor/exporter]
...</code></pre><p>To a setup with an additional trace handling pipeline with Clickhouse exporter:</p><pre class="wp-block-code"><code class="">...
service:
pipelines: ...
traces:
receivers: [otlp]
processors: []
exporters: [spanmetrics/connector]
traces/sampled:
receivers: [spanmetrics/connector]
processors: [probabilisticsampler, batch]
exporters: [vendor/exporter]
traces/unsampled:
receivers: [spanmetrics/connector]
processors: [batch/clickhouse]
exporters: [clickhouse]
...</code></pre><p>We have implemented the UI for developers as a micro-frontend in our <a href="https://engineering.monday.com/the-journey-to-create-an-internal-developer-platform/" data-type="link" data-id="https://engineering.monday.com/the-journey-to-create-an-internal-developer-platform/">internal developer platform Sphera</a>. Development of it was a breeze &#8211; we have used our <a href="https://vibe.monday.com/">Vibe frontend components library </a>and quickly created a simple UI:</p><figure class="wp-block-image size-large"><img decoding="async" width="1024" height="492" src="https://engineering.monday.com/wp-content/uploads/2024/11/image-2-1024x492.png" alt="" class="wp-image-10795" srcset="https://engineering.monday.com/wp-content/uploads/2024/11/image-2-1024x492.png 1024w, https://engineering.monday.com/wp-content/uploads/2024/11/image-2-300x144.png 300w, https://engineering.monday.com/wp-content/uploads/2024/11/image-2-768x369.png 768w, https://engineering.monday.com/wp-content/uploads/2024/11/image-2-1536x738.png 1536w, https://engineering.monday.com/wp-content/uploads/2024/11/image-2-2048x984.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure><p>On the main screen, you can see an audit log for all requests for trace replays—who made the request, for which service, our estimated cost, and the replaying progress.</p><p>Another part of the UI is a form for requesting the traces, where you can narrow your request to a specific timeframe (from 1 minute up to 1 hour) and limit it by a few trace attributes (which user? which account? which endpoint?). During the confirmation step, the user will see the number of traces sent and the estimated cost.</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="492" src="https://engineering.monday.com/wp-content/uploads/2024/11/image-3-1024x492.png" alt="" class="wp-image-10796" srcset="https://engineering.monday.com/wp-content/uploads/2024/11/image-3-1024x492.png 1024w, https://engineering.monday.com/wp-content/uploads/2024/11/image-3-300x144.png 300w, https://engineering.monday.com/wp-content/uploads/2024/11/image-3-768x369.png 768w, https://engineering.monday.com/wp-content/uploads/2024/11/image-3-1536x738.png 1536w, https://engineering.monday.com/wp-content/uploads/2024/11/image-3-2048x984.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><h3 class="wp-block-heading">Why not jump the ship?</h3><p>The obvious question is: If you have the data on your side, why don&#8217;t we switch entirely to an open-source visualization layer for telemetry and query Clickhouse directly instead of paying extra to ship more data to the usual vendor? There are multiple reasons at this point.</p><p>First, we all see the value in having fewer places to look—and if it&#8217;s a tool you already know how to use, even better! During an incident call, any extra work you have to do to correlate the data can hinder the time needed to resolve the problem.</p><p>Another critical point is that we can&#8217;t make too many changes at once, and we need to have confidence that our changes will have the impact we hope to have. It&#8217;s much easier and faster to introduce a smaller tool and then build upon this foundation to fit more and more use cases. Narrowing of scope also gives us, the maintainers of this tool, an excellent time to learn about all the new tools we introduced and how to operate them &#8211; it&#8217;s a prime learning opportunity for the whole team so we can provide better tools in the future.</p><p>The last point is that in the current state, there is a limit to how much data we retain. As our initial target was to help debug rare problems, we decided to trade off the timeframe for information completeness. In the &#8220;usual&#8221; case, we send heavily sampled data to the vendor, but you can query it for up to 30 days. Our Clickhouse instance keeps 100% of spans but for a few days.</p><h3 class="wp-block-heading">From waves to tides</h3><p>At every step of our work, we need to remember to plan for increased scale in the future—we need to make sure our tool will grow with our system and still deliver the value we want it to have.</p><p>One potential pain point is the storage of traces. With the increased volume, even our deployment of Clickhouse might become too expensive or unable to handle the load. For example, using Quickwit instance and cloud storage backends like AWS S3 might be a great way to introduce more savings at the cost of more development.</p><p>Another scaling issue is that incident management becomes more complex with every new feature shipped. We can easily imagine that by adding a few simple rules around incidents inside our Ocean application, we could ensure that without any manual action, the whole, crisp image of what happened will already be replayed to our regular observability tools, saving precious seconds in high-stress situations.</p><h3 class="wp-block-heading">Steering through Complexity</h3><p>As our systems grow and evolve, so do the complexities of monitoring and understanding them. The challenges are limitless—from managing vast telemetry data to ensuring interoperability across diverse tools and platforms.</p><p>We found a real treasure in our investment in OpenTelemetry. This open standard equips us with the flexibility to adapt to whatever the daily observability challenges throw our way and prepare us for future brand-new ideas in the field.</p></div><div class="spacer">&nbsp;</div><div class="spacer">&nbsp;</div></div></div></div></section><section id="section-related-posts"><div class="container"><div class="row"><div class="col-md-12"><h3 id="related-posts-title">Read More</h3><div class="separator"></div></div></div><div class="related-post-box-row row"><div class="col-sm-6 col-lg-4"> <a class="related-post-box d-block" href="https://engineering.monday.com/building-a-robust-harness-for-agent-in-production-feed-agent-case-study/"><h5>Related Post</h5><div class="related-post-box-img"> <img class="img-fluid" src="https://engineering.monday.com/wp-content/uploads/2026/09/1e86e0f1-e3c7-4050-aa87-af9064c8926a_780x520_acf_cropped_315x215_acf_cropped.jpeg" alt="" width="315" height="215" /></div><h4 class="related-post-box-title">Building a Robust Harness for agent in production: Feed agent case-study</h4><div class="author-wrapper clearfix single-author"><div class="authors-list"><div class="author-row d-flex align-items-center"><div class="author-image"> <img data-del="avatar" alt="Kamie Shami-Schnitzer" src='https://engineering.monday.com/wp-content/uploads/2026/09/ChatGPT-Image-Dec-24-2025-06_54_42-PM-1-e1788861489681-150x150.png' class='avatar pp-user-avatar avatar-120 photo ' height='120' width='120'/></div><div class="author-info float-left"><div class="author-name">Kamie Shami-Schnitzer</div><div class="post-info">Sep 9<span class="dot-separator"></span>11 min read <span class="star"></span></div></div></div></div><div class="float-right"><div class="likes clearfix"> <span class="like-icon d-block float-left" href="#" data-post-likes="2" data-post-id="12592"> <img class="img-fluid" src="https://res.cloudinary.com/monday-blogs/fl_lossy,f_auto/wp-blog/theme/icons/like.png" alt=""> </span> <span class="likes-count likes-value d-block float-left" data-post-id="12592">2</span></div></div></div> </a></div><div class="col-sm-6 col-lg-4"> <a class="related-post-box d-block" href="https://engineering.monday.com/i-built-a-monitor-nearly-200-engineers-turned-it-into-a-colleague/"><h5>Related Post</h5><div class="related-post-box-img"> <img class="img-fluid" src="https://engineering.monday.com/wp-content/uploads/2026/08/bd91868f-7875-4eb3-90c7-ae8a8b119f89_780x520_acf_cropped_315x215_acf_cropped.png" alt="" width="315" height="215" /></div><h4 class="related-post-box-title">I built a monitor. Nearly 200 engineers turned it into a colleague.</h4><div class="author-wrapper clearfix single-author"><div class="authors-list"><div class="author-row d-flex align-items-center"><div class="author-image"> <img data-del="avatar" alt="Uzeyir Abdullayev" src='https://engineering.monday.com/wp-content/uploads/2026/08/T024J3LAA-U073YHKE90E-6c12201c379c-512-150x150.jpeg' class='avatar pp-user-avatar avatar-120 photo ' height='120' width='120'/></div><div class="author-info float-left"><div class="author-name">Uzeyir Abdullayev</div><div class="post-info">Sep 1<span class="dot-separator"></span>15 min read <span class="star"></span></div></div></div></div><div class="float-right"><div class="likes clearfix"> <span class="like-icon d-block float-left" href="#" data-post-likes="6" data-post-id="12548"> <img class="img-fluid" src="https://res.cloudinary.com/monday-blogs/fl_lossy,f_auto/wp-blog/theme/icons/like.png" alt=""> </span> <span class="likes-count likes-value d-block float-left" data-post-id="12548">6</span></div></div></div> </a></div><div class="col-sm-6 col-lg-4"> <a class="related-post-box d-block" href="https://engineering.monday.com/from-weeks-to-days-unifying-the-mobile-and-desktop-monday-com-marketplace-with-agentic-loops/"><h5>Related Post</h5><div class="related-post-box-img"> <img class="img-fluid" src="https://engineering.monday.com/wp-content/uploads/2026/08/agentic_pipeline_mobile_marketplace_cover_v3-scaled_315x215_acf_cropped.png" alt="" width="315" height="215" /></div><h4 class="related-post-box-title">From weeks to days: Unifying the mobile and desktop monday.com marketplace with Agentic Loops</h4><div class="author-wrapper clearfix single-author"><div class="authors-list"><div class="author-row d-flex align-items-center"><div class="author-image"> <img data-del="avatar" alt="Łukasz Dąbrowski" src='https://engineering.monday.com/wp-content/uploads/2026/08/SCR-20260824-jnvf-150x150.png' class='avatar pp-user-avatar avatar-120 photo ' height='120' width='120'/></div><div class="author-info float-left"><div class="author-name">Łukasz Dąbrowski</div><div class="post-info">Aug 28<span class="dot-separator"></span>12 min read <span class="star"></span></div></div></div></div><div class="float-right"><div class="likes clearfix"> <span class="like-icon d-block float-left" href="#" data-post-likes="4" data-post-id="12524"> <img class="img-fluid" src="https://res.cloudinary.com/monday-blogs/fl_lossy,f_auto/wp-blog/theme/icons/like.png" alt=""> </span> <span class="likes-count likes-value d-block float-left" data-post-id="12524">4</span></div></div></div> </a></div></div></div></section></main><footer id="main-footer"><div class="container"><div class="row"><div class="col-12 col-md"><nav id="footer-nav"><div id="footer-main-nav" class="menu-footer-menu-container"><ul id="menu-footer-menu" class="footer-main-nav clearfix d-flex align-items-center justify-content-center"><li id="menu-item-8" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8"><a href="https://monday.com/terms/tos">Terms of use</a></li><li id="menu-item-9" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9"><a href="https://monday.com/terms/privacy">Privacy Policy</a></li><li id="menu-item-10" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10"><a href="https://monday.com/product/">Product</a></li><li id="menu-item-11" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-11"><a href="https://monday.com/help">Contact us</a></li><li id="menu-item-12" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-12"><a href="https://monday.com/pricing/">Pricing</a></li></ul></div></nav><div class=""> <a id="footer-logo" class="d-block mr-auto ml-auto" href="https://monday.com/"> <img src="https://res.cloudinary.com/monday-blogs/fl_lossy,f_auto/wp-blog/theme/monday-logo.webp" alt="logo" width="120"> </a><p class="copyright"> All Rights Reserved &copy; monday.com <a href="tel:+12017784567">+1 (201) 778-4567</a></p><p class="address"> Derech Menachem Begin 52, Tel Aviv-Yafo</p></div><div class="footer-social-links d-flex align-items-center justify-content-center"> <a target="_blank" aria-label="facebook" class="Facebook_black" href="https://www.facebook.com/mondaydotcom"></a> <a target="_blank" aria-label="instagram" class="Instagram_black" href="https://www.instagram.com/monday.com_engineering/"></a> <a target="_blank" aria-label="linkedin" class="LinkedIN_black" href="https://www.linkedin.com/company/monday-com-engineering"></a> <a target="_blank" aria-label="twitter" class="Twitter_black" href="https://twitter.com/mondaydotcom"></a> <a target="_blank" aria-label="youtube" class="Youtube_black" href="https://www.youtube.com/c/mondayEngineering"></a></div></div></div></div></footer> <script src="https://engineering.monday.com/wp-content/themes/monday/lib/jquery-3.4.1.min.js" crossorigin="anonymous"></script> <script src="https://engineering.monday.com/wp-content/themes/monday/lib/jquery-migrate-1.4.1.min.js" crossorigin="anonymous"></script> <script src="https://engineering.monday.com/wp-content/themes/monday/lib/imagesloaded.pkgd.min.js"></script> <script src="https://engineering.monday.com/wp-content/themes/monday/lib/masonry.pkgd.js"></script> <script src="https://engineering.monday.com/wp-content/themes/monday/lib/bootstrap.min.js"></script> <script src="https://engineering.monday.com/wp-content/themes/monday/js/main.js"></script> <script type="speculationrules">{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/monday/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}</script> <script type="text/javascript" id="mkaz-code-syntax-prism-js-js-extra">var prism_settings = {"pluginUrl":"https://engineering.monday.com/wp-content/plugins/code-syntax-block/"};
//# sourceURL=mkaz-code-syntax-prism-js-js-extra</script> <script type="text/javascript" src="https://engineering.monday.com/wp-content/plugins/code-syntax-block/assets/prism/prism.js?ver=1734516017" id="mkaz-code-syntax-prism-js-js"></script> <script type="text/javascript" id="monday-data-layer-js-extra">var mondayDataLayer = {"searchResults":"-1","filterClicked":""};
//# sourceURL=monday-data-layer-js-extra</script> <script type="text/javascript" src="https://engineering.monday.com/wp-content/plugins/monday-data-layer-events//data-layer.js?ver=1789194966" id="monday-data-layer-js"></script> <script type="text/javascript" id="ppress-frontend-script-js-extra">var pp_ajax_form = {"ajaxurl":"https://engineering.monday.com/wp-admin/admin-ajax.php","confirm_delete":"Are you sure?","deleting_text":"Deleting...","deleting_error":"An error occurred. Please try again.","nonce":"7915e80535","disable_ajax_form":"false","is_checkout":"0","is_checkout_tax_enabled":"0","is_checkout_autoscroll_enabled":"true"};
//# sourceURL=ppress-frontend-script-js-extra</script> <script type="text/javascript" src="https://engineering.monday.com/wp-content/plugins/wp-user-avatar/assets/js/frontend.min.js?ver=4.16.3" id="ppress-frontend-script-js"></script> <script type="text/javascript" src="https://engineering.monday.com/wp-content/plugins/page-links-to/dist/new-tab.js?ver=3.3.7" id="page-links-to-js"></script> </body></html>