Skip to content

Commit 0e55041

Browse files
committedFeb 23, 2024
feat: implement mini-batch & continue-as-new for replicator workflow
Signed-off-by: bestmike007 <i@bestmike007.com>
1 parent af26542 commit 0e55041

File tree

23 files changed

+310
-68
lines changed

23 files changed

+310
-68
lines changed
 

‎config/chainstorage/aptos/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/arbitrum/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/avacchain/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/base/goerli/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/base/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/bitcoin/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/bsc/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/dogecoin/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/ethereum/goerli/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/ethereum/holesky/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/ethereum/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/fantom/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/optimism/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/polygon/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/polygon/testnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config/chainstorage/solana/mainnet/base.yml

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎config_templates/config/base.template.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,12 @@ workflows:
167167
workflow_execution_timeout: 24h
168168
workflow_identity: workflow.event_backfiller
169169
replicator:
170-
activity_retry_maximum_attempts: 3
170+
activity_retry_maximum_attempts: 5
171171
activity_schedule_to_start_timeout: 5m
172172
activity_start_to_close_timeout: 10m
173173
batch_size: 1000
174+
mini_batch_size: 100
175+
checkpoint_size: 10000
174176
parallelism: 10
175177
task_list: default
176178
workflow_decision_timeout: 2m

‎internal/config/config.go

+2
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,8 @@ type (
210210
ReplicatorWorkflowConfig struct {
211211
WorkflowConfig `mapstructure:",squash"`
212212
BatchSize uint64 `mapstructure:"batch_size" validate:"required"`
213+
MiniBatchSize uint64 `mapstructure:"mini_batch_size" validate:"required"`
214+
CheckpointSize uint64 `mapstructure:"checkpoint_size" validate:"required,gtfield=BatchSize"`
213215
Parallelism int `mapstructure:"parallelism" validate:"required"`
214216
}
215217

‎internal/workflow/activity/activity.go

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const (
2727
ActivityEventReconciler = "activity.event_reconciler"
2828
ActivityEventLoader = "activity.event_loader"
2929
ActivityReplicator = "activity.replicator"
30+
ActivityUpdateWatermark = "activity.update_watermark"
3031

3132
loggerMsg = "activity.request"
3233

‎internal/workflow/activity/module.go

+1
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ var Module = fx.Options(
1818
fx.Provide(NewEventReconciler),
1919
fx.Provide(NewEventLoader),
2020
fx.Provide(NewReplicator),
21+
fx.Provide(NewUpdateWatermark),
2122
)

0 commit comments

Comments
 (0)
Failed to load comments.