Great question — answering as the UphillTech team:
To answer your questions a small but crucial piece of info is missing for me - the desired system behavior and provider behavior if order is made with "wrong"/"mismatched" price, because depending on that some nuances might differ a lot Is this overall approach (sync + runtime validation + short cache) considered good practice for this type of system? Based on the provided info it seems fine enough, though I would argue that if user tries to actually order probably the provider should be totally fine handling x2 traffic (i.e. check price + create order instead of just create order) so you probably can skip cache here unless you have a specific requirement from a provider or it is guaranteed...
Full answer by Guru Stron: https://stackoverflow.stackexchange.com/a/79932383 (CC BY-SA 4.0).
Want it for your business? UphillTech.