Negotiation as concurrency primitive