The service that calls another, the one whose request reaches the downstream, the perspective shifts each layer.
Upstream is the service whose request reaches another (the downstream). In a chain Client -> A -> B -> C, A is upstream of B, B is upstream of C. The terminology is relative: B is downstream of A and upstream of C. Most distributed-systems patterns (rate limiting, retry, circuit breaking, graceful degradation, error propagation) are described in terms of upstream/downstream relationships, so getting the vocabulary precise pays off in every architectural conversation.
Half the bugs in distributed-systems incident response trace to confused upstream/downstream framing during the war room: 'is the failure coming from upstream or downstream' is meaningless if half the responders are using the words backwards. Drilling the team on the directional convention (upstream = sender, downstream = receiver) costs nothing and prevents an entire class of confused war rooms.
See the part of the platform that handles upstream service in production.