When is it good to use FTP?

architecture, file-transfer, ftp

Solution

When is it good to use FTP?

Prior to the invention of SFTP.

Addressing the edit (aka the broader question in this question)

It all comes down to intended usage. Look at your situation and determine

- What data am I moving?

- What format is it natively generated in? (PDF's on disk, textual output from webserver scripts, etc)

- How is the data consumed?

- When is the data consumed? (Instantly on arrive, scheduled batch jobs?)

- What connectivity medium connects the data generator and data consumer?

For example:

A process generates PDF documents by writing them to a local raid-array. You have another PC dedicated to Printing all PDFs generated from a multitude of servers connected to a local Gigabit LAN via a cron job scheduled to run at midnight.

Given that the data would most likely be too large to all sit in RAM on the Print Server, it makes sense to use SFTP to transfer the PDFs so they can be grabbed from disk as they are printed.

Another example:

A machine needs to grab large numbers of small files from a machine in an ad-hoc manner, parse them and store the results in a database. In this case, using SFTP to move them from disk, back to another disk to be immediately read and pushed into a DB is just silly. There is no reason the smaller files wouldn't fit in RAM until being parsed and pushed into the database and hence SFTP probably isn't the best solution.

Problem

In my experience I see a lot of architecture diagrams which make extensive use of FTP as a medium for linking architectural components. As someone who doesn't make architectural decisions but tends to look at architecture diagrams could anyone explain what the value is of using FTP, where it's appropriate and when transferring data as files is a good idea. I get that there are often legacy systems that just need to work that way - although any historical insight would be interesting too I can see the attraction in transferring files (especially if that's what needs to be transferred) because of the simplicity and familiarity and wonder if the reasoning goes beyond this. Edit: Thanks to those pointing out that SFTP is preferable, however my question is more broad than wanting a recommendation for a file transfer protocol. Sorry for the confusion.

Original source