




The Warehouse Management solution for Open Systems delivers tools for inventory control, order fulfillment, and warehouse process optimization, improving stock accuracy and operational throughput within supply chain environments.
Have any questions? We’re here to help You
Design your webhook receiver to handle duplicates and out-of-order webhooks, as network issues or retries can cause both scenarios. Keep the receiver lightweight—ideally writing incoming webhooks to a queue or reliable storage—then process them asynchronously. This prevents timeouts and allows your system to handle high-volume webhook spikes. Respond with a 200 status code immediately after receiving the webhook, before processing begins. Implement idempotency by tracking processed webhook IDs and skipping duplicates. Use constant-time comparison for signature verification to prevent timing attacks. If webhook processing fails, log the error but still return 200 to prevent unnecessary retries. Set up monitoring and alerts for webhook failures so you can investigate issues promptly. For critical workflows, combine webhooks with periodic polling as a fallback mechanism.
The `RATE_LIMIT_EXCEEDED` error indicates you've exceeded the API rate limit for the connection or account. Rate limits are typically set per connection and per time window (usually per minute). When you hit a rate limit, the response includes a `Retry-After` header indicating when you can retry the request. Implement exponential backoff in your retry logic to avoid immediately hitting the limit again. If you consistently hit rate limits, review your API usage patterns—you may be making unnecessary requests, polling too frequently, or could benefit from webhook-based synchronization. For legitimate high-volume needs, contact us to discuss increasing your rate limits.
For bulk operations, we recommend batch processing with appropriate rate limiting and error handling. Makini Flows provides built-in batch processing capabilities with configurable batch sizes, delays between batches, and error handling. For API-based bulk operations, implement pagination when retrieving large datasets—our API returns results in pages with continuation tokens for fetching subsequent pages. When writing large volumes of data, break operations into smaller batches (typically 50-100 records per batch) with delays between batches to avoid overwhelming the target system. Implement comprehensive error logging to identify which specific records fail in a batch. For very large operations (thousands of records), consider asynchronous processing patterns where you queue operations and process them in the background.
Makini maintains API stability and provides advance notice of breaking changes. The current API version is v1. When we introduce breaking changes, we release a new API version while maintaining the previous version for a transition period (typically 12 months minimum). Non-breaking changes (like adding new fields or endpoints) are introduced into the current version without requiring updates. We announce upcoming version changes through multiple channels: email notifications, dashboard announcements, and release notes. API responses include version information in headers. We recommend specifying the API version explicitly in your requests to ensure consistent behavior. During version transitions, we provide migration guides and support for updating integrations.
