On Jul 12, 6:49 pm, "Keith Rarick" <k...@causes.com> wrote:
> Pros of switching:
> * speed of parsing/encoding,
> * flexibility when communicating with older/newer protocol versions,
> * simpler code.
* Fairly well understood and standard communication layer (at least by
the time beanstalkd would move to it)
* could make both of the following easy:
+ beanstalk as a plugin to another system/framework/etc
+ beanstalk plugins (e.g. logging, persistence, memcache)
* persistence would be easier in general anyway
> Cons of switching:
> * unavailability will hurt languages that aren't super-mainstream,
> * can't use telnet to talk to beanstalkd any more.
* introduces a new dependency. As it stands, the only real
requirements for beanstalk are:
1. libevent
2. interpreter for your client of choice (python, ruby, erlang, et
al)
3. yaml decoder for your lang, if you care about the stats. and
similar introspection tools. (i managed to get the python client sort
of working with a fake yaml parser just to not break the import)
* relies on a different framework's semantics (i dont know how big
this con is or how real it is, I haven't had the time to really
investigate gpb in depth yet)
* complictes debugging/testing. Personally i've tcpdumped a few runs
to watch what was happening more than a couple of times.
> Telnet is also almost a deal-breaker. I use telnet ALL THE TIME when
> working with beanstalkd, and not just in debugging. I would absolutely
> need some sort of debugging tool to let me talk to a
> protocol-buffers-using server interactively.
I like the telnet-ability of beanstalkd, but im sure something could
be made rather quickly in python/ruby/$FAV_SCRIPT_LANG to pretend
you're telneting. Just a thought...
> What say you?
Overall, I am -0 on this. The slight oppositions I have are:
1. I prefer simple text based protocols
2. Will it actually be faster?
On the other hand, I am all for standardizing payload on protocol
buffers, as well as the various bits of info. When I say
standardizing payload, I mean that it would be the reccomended payload
format, not strictly required. This way client writers could add some
tools to make the whole thing work slightly nicer (automatic object
serialization etc)
Regards,
Erich