You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Feature flags allow users to modify some system-wide tunables that affect the behavior of the whole framework. These options are either experimental or unsuitable for generic configurations.
4
-
5
-
A good practice is to use set feature flags in environment-specific config files.
6
-
7
-
```yaml
8
-
advanced:
9
-
early_realtime: False
10
-
merge_subscriptions: False
11
-
postpone_jobs: False
12
-
metadata_interface: False
13
-
skip_version_check: False
14
-
crash_reporting: False
3
+
Feature flags set in `advanced` config section allow users to modify parameters that affect the behavior of the whole framework. Choosing the right combination of flags for an indexer project can improve performance, reduce RAM consumption, or enable useful features.
|`crash_reporting`| Enable sending crash reports to the Baking Bad team |
8
+
|`early_realtime`| Start collecting realtime messages while sync is in progress |
9
+
|`merge_subscriptions`| Subscribe to all operations/big map diffs during realtime indexing |
10
+
|`metadata_interface`| Enable contract and token metadata interfaces |
11
+
|`postpone_jobs`| Do not start the job scheduler until all indexes are synchronized |
12
+
|`skip_version_check`| Disable warning about running unstable or out-of-date DipDup version |
13
+
14
+
## Crash reporting
15
+
16
+
Enables sending crash reports to the Baking Bad team. This is **disabled by default**. You can inspect crash dumps saved as `/tmp/dipdup/crashdumps/XXXXXXX.json` before enabling this option.
17
+
18
+
```admonish info title="See Also"
19
+
* {{ #summary troubleshooting.md}}
15
20
```
16
21
17
22
## Early realtime
18
23
19
-
By default, DipDup enters a sync state twice: before and after establishing a realtime connection. This flag allows starting collecting realtime messages while sync is in progress, right after indexes load.
24
+
By default, DipDup enters a sync state twice: before and after establishing a realtime connection. This flag allows collecting realtime messages while the sync is in progress, right after indexes load.
20
25
21
26
Let's consider two scenarios:
22
27
@@ -28,20 +33,34 @@ If you do not have strict RAM constraints, it's recommended to enable this flag.
28
33
29
34
## Merge subscriptions
30
35
31
-
Subscribe to all operations/big map diffs during realtime indexing instead of separate channels. This flag helps to avoid the 10.000 subscription limit of TzKT and speed up processing. The downside is an increased RAM consumption during sync, especially if `early_realtimm` flag is enabled too.
36
+
Subscribe to all operations/big map diffs during realtime indexing instead of separate channels. This flag helps to avoid the 10.000 subscription limit of TzKT and speed up processing. The downside is an increased RAM consumption during sync, especially if `early_realtime` flag is enabled too.
32
37
33
-
## Postpone jobs
38
+
## Metadata interface
34
39
35
-
Do not start the job scheduler until all indexes are synchronized. If your jobs perform some calculations that make sense only after indexing is fully finished, this toggle can save you some IOPS.
40
+
Without this flag calling `ctx.update_contract_metadata` and `ctx.update_token_metadata` methods will have no effect. Corresponding internal tables are created on reindexing in any way.
36
41
37
-
## Metadata interface
42
+
## Postpone jobs
38
43
39
-
Without this flag calling `ctx.update_contract_metadata` and `ctx.update_token_metadata` will make no effect. Corresponding internal tables are created on reindexing in any way.
44
+
Do not start the job scheduler until all indexes are synchronized. If your jobs perform some calculations that make sense only after the indexer has reached realtime, this toggle can save you some IOPS.
40
45
41
46
## Skip version check
42
47
43
48
Disables warning about running unstable or out-of-date DipDup version.
44
49
45
-
## Crash reporting
50
+
## Internal environment variables
46
51
47
-
Enables sending crash reports to the Baking Bad team. This is **disabled by default**. You can inspect crash dumps saved as `/tmp/dipdup/crashdumps/XXXXXXX.json` before enabling this option.
52
+
DipDup uses multiple environment variables internally. They read once on process start and usually do not change during runtime. Some variables modify the framework's behavior, while others are informational.
53
+
54
+
Please note that they are not currently a part of the public API and can be changed without notice.
Copy file name to clipboardExpand all lines: docs/graphql/README.md
+5-7Lines changed: 5 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,13 +29,11 @@ Hasura GraphQL engine subscriptions are **live queries**, i.e., a subscription w
29
29
30
30
This feature is essential to avoid complex state management (merging query results and subscription feed). In most scenarios, live queries are what you need to sync the latest changes from the backend.
31
31
32
-
> ⚠ **WARNING**
33
-
>
34
-
> If the live query has a significant response size that does not fit into the limits, you need one of the following:
35
-
>
36
-
> 1. Paginate with offset (which is not convenient)
37
-
> 2. Use cursor-based pagination (e.g., by an increasing unique id).
38
-
> 3. Narrow down request scope with filtering (e.g., by timestamp or level).
32
+
If the live query has a significant response size that does not fit into the limits, you need one of the following:
33
+
34
+
1. Paginate with offset (which is not convenient)
35
+
2. Use cursor-based pagination (e.g., by an increasing unique id).
36
+
3. Narrow down request scope with filtering (e.g., by timestamp or level).
39
37
40
38
Ultimately you can get "subscriptions" on top of live quires by requesting all the items having ID greater than the maximum existing or all the items with a timestamp greater than now.
0 commit comments