1. What Shipping Software Actually Does: Four Responsibilities
Shipping software is really four different products wearing one login. They share an order context, but they behave very differently and fail very differently:
Use the Shipping API workflow overview to identify which execution steps each system must own. The shipping data-model guide provides the entity and identifier checks needed to compare embedded and standalone designs.
- Rates. Read-mostly and latency-sensitive. Needs product dimensions, origin and destination, carrier contracts, and service options. A rate lookup is cheap to retry, so it tolerates being cached and re-queried.
- Labels. Write-once and must be reliable. Needs carrier credentials, address validation, and compliance fields. A label can be retried, but only for minutes; after that, a shipment is physically delayed.
- Tracking. Long-lived and append-only. Event feeds, exception handling, and customer-facing status. Tracking must be durably captured even when no one is looking at it, because the events are the evidence for every downstream dispute.
- Billing and reconciliation. Invoice matching, cost allocation, and client chargeback. This is the system of record, and it must be exact. A rate quote can be wrong and be corrected; a billing mismatch costs money and takes months to unwind.
Those failure modes explain a lot of architecture choices. A rate outage costs you quotes and checkout friction. A label outage stops shipments entirely. A tracking outage erodes trust. A billing mismatch costs real money. So the four responsibilities have very different tolerance for being "best effort": rates can be cached, labels can retry for minutes, tracking must be captured durably, and billing must be exact.
The hidden coupling is what makes this hard: all four share the same carrier contracts, the same parcel data, and the same order context. When rates, labels, tracking, and billing live in different systems, you are not maintaining four features. You are maintaining four copies of the same carrier contract and four interpretations of the same shipment. That shared state is the real architectural problem, and it is why "which tool" questions keep coming back.






