The problem
GoFlow had demand and it had riders. What it did not have was a way for the two to meet without a human in the middle.
Orders arrived from independent marketplaces. Merchants selling on platforms GoFlow did not own and could not change had their orders read off one screen and typed into another before a rider could be assigned. That manual hop was the ceiling on the whole business. It capped daily volume at whatever the operations team could physically process, and it introduced exactly the kind of transcription error that turns into a failed delivery and a refund.
The obvious fix is "just integrate with the marketplaces", which is where these projects usually stall. Each marketplace has its own order shape, its own authentication, its own idea of when to tell you something happened, and no interest in accommodating yours.
What we built
We built GoFlow's platform and, underneath it, an integration layer that treats every external marketplace as an untrusted, unreliable source, because that is what they are.
A normalising API layer. Each marketplace connects through its own adapter that translates their payload into one internal order schema. Adding the second marketplace did not mean rewriting anything for the first, and adding a third will not either. This is the difference between an integration and a point-to-point hack, and it is almost entirely invisible until the day you need it.
Idempotency as a first-class concern. Marketplaces retry webhooks. They
retry on timeout, they retry on a 500, and sometimes they retry for reasons
known only to them. Every inbound order carries an idempotency key, and a
duplicate delivery of the same event resolves to the same order rather than a
second dispatch. You can see this exact mechanism working in our
public sandbox. Send the same request twice with the same
Idempotency-Key and watch the second one replay instead of recompute.
Queue-backed retries with observability. When a downstream call fails, it goes into a queue with backoff rather than vanishing into a log file. When something is genuinely broken, the operations team finds out from a dashboard rather than from an angry customer.
Dispatch automation. Once an order is normalised and confirmed, rider assignment happens against live availability instead of a WhatsApp thread.
The architecture
The shape is deliberately boring:
Ajebuy · Tiwawale Shop → ResoCore API layer → GoFlow dispatch → Rider assignment
Two independent commerce platforms, one integration layer, one dispatch queue. Boring architecture is a feature. It means the on-call story is short, the failure modes are enumerable, and a new engineer can hold the whole thing in their head on their first week.
Outcome
GoFlow's own published figures say what the platform delivers: a 98% delivery success rate, coverage across all 36 states with a named storekeeper in each, and more than 1,000 deliveries completed for individual senders and stores. Today, store orders appear in GoFlow automatically through the live WooCommerce and Shopify integrations, sender and receiver get WhatsApp updates at every stage, and every parcel carries a tracking code from pickup to hand-off.