Connecting External Microservices and Message Queues
Architectural guidelines for bridging SmartERP with FastAPI/Flask microservices, Celery distributed tasks, and RabbitMQ event queues.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Connecting External Microservices and Message Queues within SmartERP.
For compute-intensive operations (such as high-volume OCR document scanning or AI embeddings), SmartERP offloads tasks to decoupled microservices via message queues.
{screenshot:external-microservices-and-custom-connectors-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
base, web, smarterp_core, payment - Security Groups:
Integration Specialist(Technical ID:base.group_user)System Administrator / API Director(Technical ID:base.group_system)
- Master Data Dependencies: Established API keys, configured payment providers, and verified external webhook callback endpoints.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the Settings app icon.
- From the top navigation bar, open Technical → Integrations → API Keys / Webhooks.
{screenshot:external-microservices-and-custom-connectors-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the integration form:
- Endpoint Name (Mandatory): Descriptive identifier for the external client application.
- Allowed API Scopes (Mandatory): Explicit read/write model permissions.
- Authentication Mode (Mandatory): Bearer Token, API Key, or HMAC-SHA256 signature.
- Configure optional parameters: rate limit quotas, IP address allowlists, and retry schedules.
{screenshot:external-microservices-and-custom-connectors-record-creation-form}
Step 3: Validating and Processing Transactions#
- Execution & Validation: Dispatch test payload from external client tool (cURL / Postman).
- Log Verification: Inspect HTTP response status (HTTP 200 OK) in the API access log.
{screenshot:external-microservices-and-custom-connectors-transaction-processing-state}
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
Integration: Clean stale webhook queues(base.ir_cron_webhook_cleanup)Integration: Sync currency exchange rates(base.ir_cron_currency_rates)
- Custom Print Templates & Reports:
- API Usage & Latency Telemetry Audit Report
- FinTech Reconciliation & Settlement Statement
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.).
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
HTTP 401: Invalid API Key | Client authorization header missing or key revoked. | Generate fresh API key under User Preferences and update client header. |
HTTP 429: Too Many Requests | Request volume exceeded configured per-minute rate limit. | Implement exponential backoff in client script or request rate quota increase. |
HMAC Signature Mismatch | Webhook payload modified in transit or mismatched secret key. | Verify raw JSON bytes encoding before computing HMAC signature. |