Generic-ftp came about when I worked for a company that acquired several other companies. We were running 6 different ftp servers, all of them single points of failure with no backups being done. So me and my boss at the time came up with this idea.
You send all your ftp traffic to one server and that server acts as a sort of proxy. You configure all the directories on that server to execute custom actions on files uploaded to them.
There are three actions included here, an rsync action for copying files to an rsync server, an rsynclocal action for copying files to another spot on the local machine, and an smbclient action for copying files to a windows/samba share.
I tried to make it as easy as possible to create your own custom actions to suit whatever needs may come up. It also has a built in action of "hold" that can be set on specific "pick up" directories. It allows you to set the number of days to hold it for, cleaning up after the hold expires.
It also has a backup script which can be set to run at a custom interval for keeping a "cold standby" ready if your primary ftp server should fail. I'd like to eventually get it working in a load balancing mode, so it's 100% redundant should one of them fail.