Hi all, Since version 1.0 for `dispatch` and 1.1 for `transparent` 23 years ago, which later became `option transparent`, we've been carrying and porting support for these keywords that represent exceptions in the whole code. At various places in the backend code we make a special case of communications being sent to an address without using a server for these two. Nowadays they're no longer justified: - anything done using `dispatch` can simply be done using `server`
- anything done using `option transparent` can simply be done using `server xxx 0.0.0.0` In addition, the connection modes do not support SSL, proxy protocol, checks, stats, unix sockets etc. In addition nowadays their usage has even required special handling since "balance" became the default, since they're incompatible with load balancing. I think that we're way past the point where these should have been removed. I have seen from time to time (albeit very rarely) "dispatch" still being used in TCP proxies because configs are simple and require only two lines, or just because they've been ported over time from very old ones. I'm thinking about deprecating both for 3.3 or even removing them. I'm seeing 4 options: - emit a deprecation warning in 3.3, remove in 3.5: warnings always have to be addressable one way or another by the user, and here it can require a few adjustments to turn "dispatch" into a server - just drop support in 3.3 assuming nobody uses them anymore and emit a "no longer supported" error message - emulate the keywords by inserting a dummy server that does the same thing, and emit a warning. That could technically be done, but the difficulty is the combination with other servers: all servers will need to run with a weight of zero in order to only take the traffic that comes with a valid cookie, and that requires more adjustments. But it could remain an option that allows us to get rid of the feature earlier without completely breaking configs. - do nothing and continue to maintain them. Needless to say I'm not fan of the last option. I would by default go to the first one but I do think that even the second (plain removal) might be workable. I'd really like users of `dispatch` and/or `option transparent` to voice in saying "no please don't do that so fast, I'm still using it". I'd of course prefer "thanks for the tip, now converted, you can get rid of it" :-) The 3rd option (emulation) is the one requiring more work on our side but I think it's workable. I just don't think it's well invested time given how obsolete these features are, but I'd happily be corrected if I'm wrong. Any other suggestion welcome, of course. Thanks for any insights! Willy