Sure, I can provide some insights based on the provided extracts. 1.
How job is processed? What if the job fails partially? A job in Airbyte is an individual invocation of the Airbyte pipeline to synchronize data from a source to a destination data store. In the event of a failure, the Airbyte platform will retry the pipeline. Each of these sub-invocations of a job is called an attempt. The number of permitted attempts per job changes based on the outcome of previous attempts. For example, by default, Airbyte is configured to allow 5 subsequent attempts where no data was synchronized, 10 total attempts where no data was synchronized, and 10 total attempts where some data was synchronized. After an attempt where no data was synchronized, a short backoff period is implemented before starting a new attempt. This will increase with each successive complete failure—a partially successful attempt will reset this value. You can find more details in the [Jobs section](
https://docs.airbyte.com/understanding-airbyte/jobs) of the Airbyte documentation. 2.
While job continues from the state before failures? Yes, the job continues from the state before failures. This is facilitated by Temporal, which Airbyte uses for orchestration. Temporal solves the two major hurdles that exist in orchestrating hundreds to thousands of jobs simultaneously: scaling state management and proper queue management. Temporal solves this by offering primitives that allow serialising the jobs' current runtime memory into a DB. Since a job's entire state is stored, it's trivial to recover from failures, and it's easy to determine if a job was assigned correctly. You can find more details in the [Technical Stack section](
https://docs.airbyte.com/understanding-airbyte/tech-stack) of the Airbyte documentation. 3.
If yes until then where will be storing the data to sync? The data to sync is stored in a database. Temporal allows serialising the jobs' current runtime memory into a DB. Since a job's entire state is stored, it's trivial to recover from failures. 4.
How the rate-limiting is handled? Most APIs enforce rate limits. Your connector should gracefully handle those (i.e: without failing the connector process). The most common way to handle rate limits is to implement backoff. You can find more details in the [Best Practices section](
https://docs.airbyte.com/connector-development/best-practices) of the Airbyte documentation.