Enabling low-latency applications using programmable networks