> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fibery.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Best practices

> Best practices for building custom integration apps.

## Authentication

### Use authentication (do not use `none` auth)

It's fine to start with `none` authentication type during development phase but it's highly recommended to move on to another authentication type later.

## Data fetching

### Use pagination

[Data route](/guides/integrations/rest-endpoints#post-/api/v1/synchronizer/data) supports optional pagination. The goal of pagination is to minimize the amount of data that the custom app fetches during each request. The custom app can reply with pagination info and Fibery will send the next request with that pagination information.

### Error handling

Reply with HTTP error code and **tryLater: true** if error is re-triable (e.g. rate limits) and Fibery will call your custom app later with the latest pagination settings. In this case, as the custom app developer you don't have to implement any retry logic on connector side — the responsibility is now on the Fibery side.

### Use delta

Use delta if it's possible. In this case your custom app can just send updated values. Unfortunately not every third-party API is designed that way to utilize this functionality.

Common case: your app has a log of changes. Once all data is downloaded your custom app can just provide the items that were updated/created/removed since the last synchronization date. A good tip here: subtract at least a couple of hours from that last synchronization date (just in case).
