Force.com Metadata api and When to Use the Metadata API
Force.com Metadata API:
The REST-based Bulk API is optimized for loading or deleting large sets of data. It allows you to insert, update, upsert, or delete a large number of records asynchronously by submitting a number of batches which are processed in the background by Salesforce.com.
The SOAP-based API, in contrast, is optimized for real-time client applications that update small numbers of records at a time. Although the SOAP-based API can also be used for processing large numbers of records, when the data sets contain hundreds of thousands of records it becomes less practical. The Bulk API is designed to make it simple to process data from a few thousand to millions of records.
The easiest way to use the Bulk API is to enable it for processing records in Data Loader using CSV files. This avoids the need to write your own client application.
When to Use the Metadata API?
Use the Metadata API to retrieve, deploy, create, update or delete customization information, such as custom object definitions and page layouts, for your organization. The most common usage is to migrate changes from a sandbox or testing organization to your production organization. The Metadata API is intended for managing customizations and for building tools that can manage the metadata model, not the data itself. To create, retrieve, update or delete records, such as accounts or leads, use the API to manage your data.
The easiest way to access the functionality in the Metadata API is to use the Force.com IDE or Force.com Migration Tool. These tools are built on top of the Metadata API and use the standard Eclipse and Ant tools respectively to simplify the task of working with the Metadata API. Built on the Eclipse platform, the Force.com IDE provides a comfortable environment for programmers familiar with integrated development environments, allowing you to code, compile, test, and deploy all from within the IDE itself. The Force.com Migration Tool is ideal if you want to use a script or a command-line utility for moving metadata between a local directory and a Salesforce.com organization.