Hi Chris, I see your point, but everything I've found, both historically in my own work, and on the web, has been multi-thread, or even multi-process.
For example, where I work at the moment we've got an application which runs on a series of monitoring equipment and dumps status to a disk file every 5 seconds. There's a sweeper process which runs totally separately on a server which sweeps through those files and reads them into a database. That sounds very much like your final paragraph. It does have the advantage (for us) of separating the insert into the database from the work that the monitoring equipment is doing and it means that if the database server isn't available the equipment can at least continue to run and record locally. Does your communication protocol not include an option to back off the rate of transmission? Or could you do something at a lower level and not ACK the packets to force retransmission at the TCP level? (Clutching at straws a little here). Anyway, hope some of the thoughts and ideas does help you, and I'd be interested to know what you end up doing. Regards, Carl [big snip]