# Machines first impressions

**URL:** <https://community.fly.io/t/machines-first-impressions/5571>\
**Category:** General\
**Created:** [June 9, 2022, 9:42pm UTC](https://community.fly.io/t/machines-first-impressions/5571 "2022-06-09T21:42:58Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![thomas](https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/thomas/32/40188_2.png) [@thomas](https://community.fly.io/u/thomas)\
**Post date:** [June 10, 2022, 6:43pm UTC](https://community.fly.io/t/machines-first-impressions/5571/3 "2022-06-10T18:43:46Z")

</div>

> [@pcmaster160](#):
>
> Disclaimer: I’ve been playing around with UDP and as far as I can tell UDP is a bit of a second class citizen to TCP here, so I might have found edge cases with it and machines.

I don’t know if I’d put it that way, but UDP is routed differently from TCP here — you can simply proxy TCP, and that’s what we do, we scale out a fleet of proxies. But you can’t do that easily with UDP, because UDP doesn’t have sessions or headers to stuff the original source address in. So we route UDP in the kernel.

UDP should work the same way for machines as it does for apps! If you’ve found something where it doesn’t, please let us know.

There’s nothing about using UDP that would change the way we orchestrate a machine vs. an app instance; the network plumbing is the same (and it’s not especially intrusive in our orchestration code; there isn’t some special handling we do for apps that happen to use UDP).

---

_[View the full topic](https://community.fly.io/t/machines-first-impressions/5571)._
