Flow control between Octoprint and printer

Curious to know what controls rate of GCode between Octoprint and printer. I assume the printer has some way to signal buffer nearly full.

The firmware confirms every command it gets with an "OK" (or a request to resend if the checksum does not check out). A new command should not be sent until that "OK" is received, or a buffer overflow may happen on the receiving end (pausing the print in many cases).

Thanks for that.

[...]
Send: N2156 G1 F1000 X36.613 Y78.22 E1.30104*12
Recv: ok
Send: N2157 G0 F800 X36.613 Y77.654*65
Recv: echo:busy: processing

If it supports the busy protocol then it does things like this.