@php $globalApi = \App\Models\WabaPlatformSetting::rateLimit('global_api_per_minute', 60); $globalMessage = \App\Models\WabaPlatformSetting::rateLimit('global_message_per_minute', 30); $burstEnabled = \App\Models\WabaPlatformSetting::rateLimit('burst_protection_enabled', true); @endphp

Batas Request API

Konfigurasi rate limiting per tipe paket

@if($burstEnabled) Burst Protection ON @else Burst Protection OFF @endif
Pengaturan Global

Pengaturan default yang berlaku untuk semua client jika tidak ada setting khusus per paket.

@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'global_api_per_minute')
req/min
Maksimal request API per menit
@endif @if($setting['key'] === 'global_message_per_minute')
msg/min
Maksimal pengiriman pesan per menit
@endif @endforeach
Paket Shared

Menggunakan nomor WABA bersama

@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'shared_api_per_minute')
req
@endif @if($setting['key'] === 'shared_message_per_minute')
msg
@endif @endforeach
Paket Dedicated

Nomor WABA khusus, dikelola platform

@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'dedicated_api_per_minute')
req
@endif @if($setting['key'] === 'dedicated_message_per_minute')
msg
@endif @endforeach
Paket Self Service

Client kelola sendiri via OAuth

@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'self_service_api_per_minute')
req
@endif @if($setting['key'] === 'self_service_message_per_minute')
msg
@endif @endforeach
Proteksi Burst Request

Mencegah client mengirim request secara massal dalam waktu singkat (flood protection).

@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'burst_protection_enabled')
@endif @if($setting['key'] === 'max_burst_requests')
request
Maksimal request dalam burst window
@endif @if($setting['key'] === 'burst_window_seconds')
detik
Window waktu untuk deteksi burst
@endif @endforeach
Cara Kerja:

Jika diaktifkan dengan setting di atas, client yang mengirim lebih dari {{ \App\Models\WabaPlatformSetting::rateLimit('max_burst_requests', 10) }} request dalam {{ \App\Models\WabaPlatformSetting::rateLimit('burst_window_seconds', 5) }} detik akan di-throttle sementara.

Perbandingan Rate Limit per Paket
Paket API / Menit Pesan / Menit Tier
Shared Paket Shared {{ \App\Models\WabaPlatformSetting::rateLimit('shared_api_per_minute', 30) }} {{ \App\Models\WabaPlatformSetting::rateLimit('shared_message_per_minute', 20) }} Basic
Dedicated Paket Dedicated {{ \App\Models\WabaPlatformSetting::rateLimit('dedicated_api_per_minute', 100) }} {{ \App\Models\WabaPlatformSetting::rateLimit('dedicated_message_per_minute', 50) }} Standard
Self Service Paket Self Service {{ \App\Models\WabaPlatformSetting::rateLimit('self_service_api_per_minute', 200) }} {{ \App\Models\WabaPlatformSetting::rateLimit('self_service_message_per_minute', 100) }} Premium