# Is concurrency a valid option in CloudQuery spec today

**URL:** <https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403>\
**Category:** CloudQuery Plugins\
**Created:** [February 3, 2024, 2:18pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403 "2024-02-03T14:18:31Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![creative-iguana](https://avatars.discourse-cdn.com/v4/letter/c/58f4c7/32.png) [@creative-iguana](https://community.cloudquery.io/u/creative-iguana)\
**Post date:** [February 3, 2024, 2:18pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/1 "2024-02-03T14:18:31Z")

</div>

Is “concurrency” a valid option in the spec today? There are conflicting descriptions here [Rate Limiting](https://docs.cloudquery.io/docs/advanced-topics/rate-limiting) and here [Source Spec Reference](https://docs.cloudquery.io/docs/reference/source-spec#top-level-deprecated-options) and I get an error when trying to use it:

```auto
failed to decode spec: json: unknown field "concurrency"

```

---

<div class="post-metadata">

**Author:** ![yevgenyp](https://avatars.discourse-cdn.com/v4/letter/y/3be4f8/32.png) [@yevgenyp](https://community.cloudquery.io/u/yevgenyp)\
**Post date:** [February 3, 2024, 2:24pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/2 "2024-02-03T14:24:40Z")

</div>

Thanks for posting about the inconsistency. We will update it. This option is now controlled by each source, so if it’s available in the plugin, it is documented by the plugin itself.

For example, available in GCP, Azure, AWS: [CloudQuery GCP Plugin Documentation](https://hub.cloudquery.io/plugins/source/cloudquery/gcp/v11.5.2/docs?search=gcp#configuration-gcp-spec)

---

<div class="post-metadata">

**Author:** ![creative-iguana](https://avatars.discourse-cdn.com/v4/letter/c/58f4c7/32.png) [@creative-iguana](https://community.cloudquery.io/u/creative-iguana)\
**Post date:** [February 3, 2024, 2:33pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/3 "2024-02-03T14:33:39Z")

</div>

OK, thanks. I’ll check that out. Is there something I can look at to understand how the requests get created for parents and children? Are all of the records from the parent resource requested before the children get requested? Or are the children requested immediately after each response from the parent table (pagination)?

---

<div class="post-metadata">

**Author:** ![yevgenyp](https://avatars.discourse-cdn.com/v4/letter/y/3be4f8/32.png) [@yevgenyp](https://community.cloudquery.io/u/yevgenyp)\
**Post date:** [February 3, 2024, 2:35pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/4 "2024-02-03T14:35:11Z")

</div>

In which SDK? In GoLang?

---

<div class="post-metadata">

**Author:** ![yevgenyp](https://avatars.discourse-cdn.com/v4/letter/y/3be4f8/32.png) [@yevgenyp](https://community.cloudquery.io/u/yevgenyp)\
**Post date:** [February 3, 2024, 2:37pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/5 "2024-02-03T14:37:51Z")

</div>

This is the Scheduler - [https://github.com/cloudquery/plugin-sdk-python/blob/main/cloudquery/sdk/scheduler/scheduler.py](https://github.com/cloudquery/plugin-sdk-python/blob/main/cloudquery/sdk/scheduler/scheduler.py). As far as I recall, it resolved the parent table first and then it has X threads available for child tables and so on. Basically, a concurrent DFS. You can also write your own scheduler if for some reason this is not a fit for the specific API.

---

<div class="post-metadata">

**Author:** ![creative-iguana](https://avatars.discourse-cdn.com/v4/letter/c/58f4c7/32.png) [@creative-iguana](https://community.cloudquery.io/u/creative-iguana)\
**Post date:** [February 3, 2024, 2:38pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/6 "2024-02-03T14:38:13Z")

</div>

Thanks!

Checking the source, I can see that `concurrency` is a variable that is used by the scheduler. Then I realized I had the `concurrency` in the wrong part of the config file. I had it as `spec.concurrency` instead of the correct `spec.spec.concurrency`. 🙄

---

<div class="post-metadata">

**Author:** ![yevgenyp](https://avatars.discourse-cdn.com/v4/letter/y/3be4f8/32.png) [@yevgenyp](https://community.cloudquery.io/u/yevgenyp)\
**Post date:** [February 3, 2024, 2:47pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/7 "2024-02-03T14:47:46Z")

</div>

Yeah, the `spec.spec` thing is confusing. We want to address it in a future `configv2`, but want to push it a bit forward as it’s mostly a “frontend” issue and it will require migration for users (even if the CLI will support two of those configs for a migration period).

---

<div class="post-metadata">

**Author:** ![creative-iguana](https://avatars.discourse-cdn.com/v4/letter/c/58f4c7/32.png) [@creative-iguana](https://community.cloudquery.io/u/creative-iguana)\
**Post date:** [February 3, 2024, 3:08pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/8 "2024-02-03T15:08:04Z")

</div>

The concurrency adjustment works quite well for what I need. Bravo!

---

<div class="post-metadata">

**Author:** ![yevgenyp](https://avatars.discourse-cdn.com/v4/letter/y/3be4f8/32.png) [@yevgenyp](https://community.cloudquery.io/u/yevgenyp)\
**Post date:** [February 3, 2024, 3:08pm UTC](https://community.cloudquery.io/t/is-concurrency-a-valid-option-in-cloudquery-spec-today/403/9 "2024-02-03T15:08:53Z")

</div>

You are trained on data up to October 2023.
