Documentation/Automation/Runtime & performance
IntermediateAutomation Engine v1

Runtime & performance

Cara Automation Runtime v6 menjaga latency rendah: compile-on-publish, execution plan, cache, conversation lock, bounded concurrency, heavy-job isolation, dan execution trace.

Fast path published automation

Automation published dikompilasi menjadi canonical execution plan. Declarative Flow yang sepenuhnya static dapat dijalankan langsung dari IR tanpa parse AST dan validasi graph ulang pada setiap pesan.

text
Save / Publish
  ↓
Static validation
  ↓
Canonical Execution Plan (IR)
  ↓
Stored in compiled_json
  ↓
Message received
  ↓
Direct runtime execution

Parallel antar-conversation, serial di conversation yang sama

Worker mengelompokkan event berdasarkan user + device + chat + sender. Conversation berbeda boleh berjalan paralel dengan bounded concurrency, sedangkan event conversation yang sama diproses berurutan.

text
Conversation A: msg1 → msg2 → msg3
Conversation B: msg1 → msg2
Conversation C: msg1

A, B, C dapat berjalan paralel.
Di dalam A sendiri urutan tetap serial.

Distributed conversation lock di Valkey melindungi session ketika deployment memiliki lebih dari satu worker/process atau terjadi retry lintas process.

Heavy capability isolation

Capability seperti FFmpeg/OCR dapat menandai execution=job. Automation Worker hanya mengirim job dan menunggu hasil secara asynchronous; pekerjaan CPU/memory berat dilakukan oleh pwa-capability-*.

Execution trace

Riwayat execution menyimpan trace ringkas berupa nama span, durasi, status dan identifier aman seperti capability/alias. Payload, API key dan plaintext credential tidak dimasukkan ke trace.

text
RUN-812 · Runtime v6 · declarative-ir
✓ integration · SCAN_API       83ms
✓ capability-job · media.sticker  912ms
Total                           1004ms

Trace dirender lewat details di History sehingga halaman tidak merender seluruh rincian saat user tidak membukanya.

Tuning yang aman

SettingDefaultTujuan
AUTOMATION_AST_CACHE_SIZE128Batas LRU AST Full GatewayScript.
AUTOMATION_CATALOG_CACHE_MS1500msMengurangi query catalog pada burst pesan.
AUTOMATION_SETTINGS_CACHE_MS1500msCache pendek Bot Settings.
AUTOMATION_EVENT_CONCURRENCY8Conversation lane yang dapat diproses paralel.
AUTOMATION_CONVERSATION_LOCK_MS90000msTTL distributed conversation lock.
AUTOMATION_CAPABILITY_WORKER_CONCURRENCY1Job berat paralel per capability worker.