advanced 2 min answer Multiple choice

A platform must decide whether to build its own routing and dispatch optimisation or buy a commercial service. What decides it?

build-vs-buydifferentiationcapabilitydependencyinstacartarchitecture-selection
Pick one
Show the full answer Hide the answer

The primary test

Would you accept your closest competitor using the identical implementation?

If yes, the capability is not differentiating and buying is usually right — identity, payments, notifications, email delivery, observability. Building these means spending engineering on a problem others have solved and that no customer chooses you for.

If no, building may be justified — but only if you can actually build it better, which is a separate and harder claim.

Why routing and dispatch is the hard case

For a delivery marketplace it is arguably the core capability: matching orders to shoppers under changing supply and demand, with quality directly affecting delivery times, cost per order and both sides' experience. A generic routing service optimises distance; the business needs to optimise for a blend of time, cost, shopper earnings, order batching and customer promise — objectives no vendor knows.

That is the real signal: when the objective function is specific to your business model, generic solutions optimise the wrong thing.

The secondary considerations

  • Speed to first value. Buying gets something working now, which is worth a great deal early. A common path is buy first, build later once the requirements are understood — and understanding them is itself the main output of the buying period.
  • Ceiling. A bought solution has limits. Reaching them means migration, so the question is whether you will reach them and when.
  • Data. If the capability improves with your data, buying may mean the vendor's model improves from your data while yours does not. For an optimisation capability this can be decisive.
  • Total cost including operations. Building means operating, maintaining and staffing it permanently, not just writing it.
  • Dependency risk, which is real and usually overstated relative to the cost of building.

The pattern that works

Buy the surrounding infrastructure; build the objective function. Use commercial mapping, traffic and geocoding data; build the optimisation and dispatch logic on top. This concentrates engineering on the part that is differentiating and buys the parts that are not.

The failure mode in each direction: building everything spreads a limited team across problems others have solved, while buying everything means the differentiating capability is identical to competitors' and is improved on a vendor's roadmap rather than yours.