Naming: "Task" interfaces and classes
Soong has a concept (currently called a "task") which represents one step in a larger migration process. The "task" is the main object which would be managed by ETL tools - one would run a sequence of tasks to perform a complex migration (such as a full website) from one data store to another. Not all tasks are necessarily ETL processes - some might perform housekeeping (such as creating SQL tables in a destination database to be loaded). A single ETL task would be expected to migrate one specific type of data - articles, tags, user accounts, etc.
Is "task" the best language to use to describe this concept? Would "process" be better? Any other suggestions?
These are the current components:
interface TaskInterface
: The base interface for all types of tasks, and the one which tools/applications would normally deal with directly.
interface EtlTaskInterface extends TaskInterface
: Adds methods specific to ETL tasks.
class Task implements TaskInterface
: A basic implementation of task management.
class EtlTask extends Task implements EtlTaskInterface
: A basic implementation of ETL-specific task management. It should be noted that the migrate() method here is the linchpin of Soong - the place where the basic components (extractors, transformers, loaders) are constructed and evoked to execute a migration.