Problems & solutions · Custom Software

MDR Platform Problems: The 7 That Break a Growing Provider, and How to Avoid Them

Managed Detection AND Response Platform architecture and database illustration showing common problems and fixes.
The short answer

The most expensive failure in a managed detection and response build is enforcing tenant isolation in application code instead of at the data layer. It works in testing, it works at ten customers, and then a prospect's security team runs a penetration test against your portal and finds a query path that returns another customer's alerts. That is not a bug you patch and move past. It is a disclosure you will be asked about in every sales cycle afterwards, and fixing it properly once the schema is in production is close to a rewrite of the data access layer across a platform that already holds live customer telemetry.

Why does an MDR build turn into a second SIEM instead of a service platform?

The scope failure that eats these projects is deciding, somewhere around week six, that you also need to build the detection engine. It happens for an understandable reason. Once you are ingesting telemetry from customer endpoints to normalise it, writing a correlation rule feels like the next obvious step, and the team is already in the data. Six months later you own a mediocre search index, a query language nobody outside the team knows, and you have not yet shipped the thing that actually caps your growth.

What caps your growth is not detection quality. It is the four minutes an analyst spends per alert reconstructing which tenant this is, what their normal looks like, what your contract with them permits, and who is on their escalation list this month. Multiply that across thirty four customers on a night shift and you have the whole problem.

The fix is a decision written into the statement of work before kickoff: you are building the orchestration, context and service layer, and you are buying detection. Keep buying it. Let CrowdStrike, Defender or an Elastic cluster do what they already do at a customer's own estate, and spend your engineering on the layer none of them will ever build for you, which is the multi tenant analyst experience and the evidence trail behind your contracts. If a proposal you receive includes writing your own correlation engine, ask what business outcome that specifically delivers that a bought engine does not, and expect a weak answer.

What goes wrong when you migrate tenants and detection history off a partner platform?

Two things, and providers underestimate both. The first is that your case history is not portable in the way you assume. Alerts export reasonably. Dispositions, analyst reasoning, the note explaining why a particular alert class at customer 19 is benign, and the tuning decisions that produced today's queue tend to live in fields that either do not export or export as unstructured text. That reasoning is the asset. Without it your new platform starts with an analyst team that has lost several years of institutional memory about what normal looks like at each customer.

The second is that migration is per tenant, not per platform, and each tenant is a scheduling negotiation with a customer who did not ask for this. Every one needs connector credentials reissued, a baseline period where you are running both platforms and comparing, and a named person at their end. Forty customers at even a light touch is a programme, not a cutover weekend.

Do it in waves and pick the first wave deliberately: two or three customers with simple estates, cooperative contacts and no clinical or regulated constraint. Run parallel for at least a full month per wave and reconcile on alert counts by class rather than totals, because totals hide the case where one noisy detection is masking the absence of three others. Extract tuning decisions and dispositions as structured data first, before you touch anything else, because that is the part your vendor has the least incentive to make easy and the part your analysts cannot rebuild.

Why do the CrowdStrike, Defender and Okta integrations break after launch?

They break under sustained load, at a specific time, for the same three reasons every time. Rate limits are the first, and the failure is rarely a hard error. It is a throttle that silently degrades your polling frequency until a detection that should have fired within minutes fires within an hour, and nothing in your monitoring notices because data is still arriving. The second is credential lifecycle: a customer rotates an application secret during their own hygiene work and tells nobody, so ingestion for one tenant stops while thirty nine keep flowing and your dashboard averages look healthy. The third is schema drift, because these vendors evolve their event formats and your normalisation layer was written against last year's shape.

All three share one root cause, which is monitoring the aggregate rather than the tenant. Alert on per tenant per source freshness, with an expected volume band learned from that tenant's own history, so a customer whose identity telemetry has been quiet for six hours raises a ticket even though your platform ingested millions of events tonight.

Then build for backpressure honestly. Ingestion needs a queue with replay, so a downstream outage becomes a delay rather than a permanent gap in a customer's evidence. And keep raw events alongside the normalised form for a defined window, because when a vendor changes a field you will need to reprocess, and a platform that only stores the normalised version cannot.

What happens when contracted response authority is not modelled?

An analyst at 3am sees a genuine compromise at a customer and isolates the host. Correct instinct. That customer bought notification only, and the isolated host is a clinical system in a hospital group whose network you are contractually not allowed to touch after 6pm. The platform let it happen because response actions were built as a capability rather than as a permission.

This is the failure mode that damages a provider fastest, because it converts a technically good outcome into a contractual breach and a very hard conversation. It is also entirely preventable, and it is skipped constantly because response actions get scoped as buttons in a user interface rather than as an authority model.

Model it as data per tenant. What actions are permitted at all, in what hours, against what asset classes, with what approval, and what is the fallback when the action is not permitted. The platform should make the impermissible action impossible to reach rather than showing it and relying on the analyst to remember, because at 3am under pressure they will not. Where an action needs a customer's approval, that request and the response belong in the case record, timestamped, so the evidence exists later.

Add a blast radius check on top. An action that would isolate more than a set number of hosts, or any host in a tagged critical group, requires a second named approver. Providers who add this consistently find it catches operator error far more often than it catches anything malicious, which is exactly the point.

Should you build custom or configure what you already own?

Under roughly fifteen customers, do not build. Stellar Cyber, Blumira and Secureworks Taegis are real products that solve ingestion and detection competently, and white labelling or reselling an established service preserves your margin without funding an engineering programme. If your differentiation is response quality and the relationship rather than anything technical, the platform is not your product and you should not fund it as though it is.

Before concluding your current platform cannot do what you need, check what you have actually configured. Most partner platforms support per tenant suppression, custom severity mapping and scheduled reporting, and providers routinely run without any of it because nobody owned the configuration. Fixing tuning debt inside the platform you already pay for is weeks of analyst time, not a capital project, and it will tell you honestly whether the constraint is the product or the process.

Build when the constraint is structural rather than configurational. When the shape of your service has to be expressed through someone else's schema and your commercial differentiation gets flattened. When onboarding a customer costs a week of analyst time and that is now your growth ceiling. When ingestion based pricing is taking a rising share of margin on every contract you win. Even then, the sane split is to build the service, context and evidence layer and keep buying detection underneath it.

How do hidden costs get into the quote?

Retention is the big one and it is almost never in the build number. Holding a year of telemetry for forty customers is an ongoing infrastructure cost that shapes your architecture, and it grows with every customer you win. Ask for the monthly storage and query cost at your current customer count and at double it, and ask what the tiering plan is when data ages past ninety days.

Four more that get left out routinely. Each additional endpoint or identity vendor is a separate integration with its own behaviour under load, so a quote that prices three sources is not a quote for a prospect who runs a fourth. Onboarding automation, which providers assume is included and which is genuinely a workflow product of its own. Parallel running through migration, where you pay for both platforms and your analysts do more work, not less. And the validation work if any customer requires evidence about your platform's own controls, which mid market prospects increasingly do.

Then the one specific to this business: response actions are the most expensive component per feature, because each one touches somebody else's production estate and needs permission modelling, approval flow, blast radius checks and a rollback story. Pricing them as user interface buttons is how a quote comes in low and a project comes in late.

What separates an MDR platform build that works from one that fails?

Isolation decided in week one, enforced at the data layer with row level security and tenant scoped credentials for downstream tool access, and a test suite whose explicit job is to attempt cross tenant reads and fail the build when one succeeds. Everything else in this list is recoverable. This one is not, and retrofitting it is why some of these projects get abandoned rather than fixed.

Shared detection content with per tenant overlays as versioned data, decided before the first rule is written. Forking rules per customer feels reasonable at ten tenants and is unmaintainable at forty, and the transition back is manual reconciliation of thirty four divergent copies with nobody able to say which differences were deliberate.

The SLA modelled rather than derived. Each alert class at each tenant carries a target from that contract, the clock starts at an event you can defend, pauses carry reasons, and the analyst view shows time remaining. Providers who add this consistently report the live countdown matters more operationally than the report does commercially, because the shift lead can see a breach coming rather than reading about it in a quarterly review.

Standardised tool support, stated plainly in your own sales process. Providers who say they support three endpoint vendors and onboard anything else as a custom engagement build cheaper platforms and grow faster than those who accept whatever a prospect already owns.

And ownership settled in writing before kickoff: the repository, the infrastructure accounts, the customer data and the right to hire anyone else to continue the work. When the platform is the product, owning it is not a commercial preference. It is the business.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Retailers improving Core Web Vitals saw measurable gains: Vodafone improved LCP by 31% for 8% more sales, Lazada saw a 16.9% mobile conversion increase, and Cdiscount saw a 6% Black Friday revenue uplift. Source: web.dev (Google Chrome team) (2021) →
  2. McKinsey argues software developer productivity can be measured by combining system-level metrics (DORA and SPACE) with its own outcome-oriented approach, which it reports deploying across nearly 20 tech, finance, and pharmaceutical companies - a claim that sparked significant debate in the engineering community. Source: McKinsey & Company (2023) →
  3. A study (led by Prof. Pak-Lok Poon, published in Frontiers of Computer Science, 2024) reviewing decades of spreadsheet-quality research found that about 94% of spreadsheets used in business decision-making contain errors, illustrating the hidden risk of manual spreadsheet workarounds that custom software is built to replace. Source: Central Queensland University / phys.org (Prof. Pak-Lok Poon et al.) (2024) →
  4. An earlier SHRM benchmarking report (reflecting fiscal year 2015, published 2016) established a widely cited baseline average cost-per-hire of $4,129, illustrating how recruiting costs have climbed over time (SHRM's separate 2025 Benchmarking Report shows $5,475 for nonexecutive roles). Note: the $5,475 figure is not on this linked page; it comes from SHRM's 2025 report. Source: SHRM (Society for Human Resource Management) (2016) →
Kabir B. · Director of Mobile Engineering · Delhi

Kabir directs mobile engineering at Digital Heroes across iOS, Android and cross platform builds. Day to day that means release trains, store review cycles, device coverage and deciding when native work is worth the extra cost. Useful reading before committing to an app roadmap.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Our isolation is a tenant column with filtering in the service layer. How serious is that?

Serious enough to fix before your next enterprise sales cycle. Application level filtering means every new query, background job and report is a fresh opportunity to forget the filter, and the usual way providers find out is during a customer penetration test. Move enforcement to the data layer with row level security and tenant scoped credentials for downstream tools, then add a test suite whose job is to actively attempt cross tenant reads. Doing this at forty tenants is painful. Doing it at a hundred is a rewrite.

We forked detection rules per customer and now have dozens of copies. How do we get back?

Rebuild the shared library first and treat each fork as a diff to be triaged rather than merged wholesale, because most differences will turn out to be undocumented suppressions rather than deliberate improvements. Work customer by customer, moving each divergence into an overlay carrying suppressions, thresholds and severity adjustments as versioned data with a reason and an approver. Expect to discover suppressions nobody can explain, and resist the temptation to keep them just because removing them feels risky. Log them, remove them, and watch the queue.

Why does our ingestion quietly fall behind at night without alerting anyone?

Because the monitoring is aggregate. Total event volume stays healthy while one tenant's source has been throttled or its credential rotated, and the average hides it. Alert on per tenant per source freshness against a volume band learned from that tenant's own history, so six quiet hours on one customer's identity telemetry raises a ticket regardless of what the platform total looks like. Add a replayable ingestion queue so a downstream outage becomes a delay rather than a permanent hole in that customer's evidence.

Can we migrate detection and case history off our current platform?

Alerts usually export cleanly. What tends not to export is the part you actually need, which is dispositions, analyst reasoning and the tuning decisions that produced today's queue. Extract those as structured data before anything else, because it is the piece your vendor has least incentive to make easy and the piece your analysts cannot reconstruct. Then migrate in waves of two or three customers with a parallel month each, reconciling on alert counts by class rather than on totals.

How do we stop an analyst taking an action a customer has not paid for?

Model response authority as data per tenant rather than as buttons in a user interface: which actions are permitted, in what hours, against which asset classes, with what approval, and what happens instead when the action is not permitted. The impermissible action should be unreachable, not visible with a warning, because at 3am under pressure the warning loses. Add a blast radius rule requiring a second named approver above a threshold or on tagged critical assets.

What does telemetry retention actually cost once we pass forty customers?

Enough that it belongs in the architecture conversation rather than in a line item added later. Ask your developer for the monthly storage and query cost at your current customer count and at double it, and for the tiering plan once data ages past ninety days. The design decision that matters is keeping raw events alongside the normalised form for a defined window, because when a vendor changes an event field you will need to reprocess, and a platform holding only the normalised version cannot.

Our SLA report and our ticketing export disagree. Which one do we show the customer?

Neither, until you fix the underlying problem, which is that the SLA was derived after the fact rather than modelled. Derived clocks are ambiguous about when they started, inconsistent about business calendars and timezones, and invisible until the breach has already happened. Model the target per alert class per tenant from the contract, start the clock on a defensible event, record pauses with reasons, and show analysts time remaining. The report then becomes a query rather than a reconciliation exercise.

How do we get customer onboarding down from a week to a couple of days?

Treat onboarding as a first class product workflow rather than a runbook an analyst follows. That means connector setup with credential validation and a test event, a baseline period the platform runs automatically before detections go live, escalation contacts and business calendars captured as structured data, and a status view the customer can see. Standardising which tools you support does more for this number than any other single change, because most of the week goes into the estate nobody has onboarded before.

How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
What is the biggest mistake first-time software buyers make?
Choosing the lowest quote without asking why it is the lowest. A bid 40% under the field usually gets there by skipping tests, documentation, and code review, which are invisible in a demo and brutal to pay for later; every stalled project Digital Heroes has been asked to rescue tells some version of that story. The second mistake is signing without a written scope, which reliably turns the winning cheap quote into 1.5x to 2x the price by launch.
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
The reliable signals are re-typing the same data into multiple tools, one employee acting as human middleware between systems, and errors appearing in handoffs between teams. Hard limits force the issue too: Airtable's Team plan caps at 50,000 records per base, and Business costs $45 per seat per month, so a 20-person team pays about $10,800 a year for a tool it has already outgrown. When workarounds consume more hours than the tools save, the spreadsheet era is over.
Does the tech stack matter, and which one should I ask for?
It matters less than agencies imply, provided it is boring. A mainstream stack, something like React or Next.js on the front end, Node.js or Python behind it, and PostgreSQL for data, means thousands of developers can maintain your system if you ever change vendors. Apply one test: ask how hard it would be to hire a replacement developer for the proposed stack, and walk away from anything built on an agency's in-house framework.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
How many people should be working on my software project?
A typical $40,000 to $150,000 build runs on three to five people: a technical lead, one or two developers, a designer, and someone owning QA and project communication, often as overlapping part-time roles. More bodies do not make software arrive faster; past a point they slow it down with coordination overhead. The question that matters more than headcount is whether one named senior engineer is accountable for the outcome.
What should I prepare before contacting a software development agency?
A one-page brief beats a 40-page requirements document: the business problem in plain words, who will use the system, the 5 to 10 workflows it must handle, the tools it must connect to, and your budget range and deadline driver. You do not need wireframes, a specification, or technical vocabulary; producing those is the agency's job during discovery. Stating a budget range up front is the single best move, because it gets you honest scoping instead of a quote engineered to win the meeting.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?