Appearance
Service Topology
Visual map of all Microtec ERP backend services, their placement in Azure Container Apps Environments, and the routing connections between them.
Full Service Topology
Service Details
Public CAE Services
| Service | Image | Min Replicas | Max Replicas | External URL |
|---|---|---|---|---|
Gateway.API | gateway-apis | 2 | 10 | {domain}/api/* |
Keycloak | bitnami/keycloak:22 | 2 | 4 | {domain}/auth/* |
Private CAE — ERP Services
| Service | Image | Min Replicas | Max Replicas | Internal FQDN Pattern |
|---|---|---|---|---|
AppsPortal.Apis | apps-portal-apis | 1 | 15 | mic-erp-be-{env}-apps-portal |
Inventory.Apis | inventory-apis | 1 | 10 | mic-erp-be-{env}-inventory |
HR.Apis | hr-apis | 1 | 10 | mic-erp-be-{env}-hr |
Private CAE — Business Owner Portal
| Service | Image | Min Replicas | Max Replicas | Internal FQDN Pattern |
|---|---|---|---|---|
BusinessOwners.Apis | business-owners-apis | 1 | 8 | mic-erp-be-{env}-business-owners |
Private CAE — Infrastructure Services
| Service | Image | Min Replicas | Max Replicas | Internal FQDN Pattern |
|---|---|---|---|---|
Attachment.Apis | attachment-apis | 1 | 5 | mic-erp-be-{env}-attachment |
Notification.Apis | notification-apis | 1 | 5 | mic-erp-be-{env}-notification |
Workflows.Apis | workflows-apis | 1 | 5 | mic-erp-be-{env}-workflows |
Template.Apis | template-apis | 1 | 5 | mic-erp-be-{env}-template |
Integration.Apis | integration-apis | 1 | 5 | mic-erp-be-{env}-integration |
Platforms.Worker | platforms-worker | 1 | 8 | mic-erp-be-{env}-platforms-worker |
Service Communication Patterns
Synchronous (HTTP)
All direct service calls use typed HTTP clients from Microtec.PublicApi.* NuGet packages with Polly retry policies:
AppsPortal → Attachment via IAttachmentPublicApi (upload/download files)
AppsPortal → Notification via INotificationPublicApi (trigger emails/SMS)
AppsPortal → Workflow via IWorkflowPublicApi (start business workflows)
AppsPortal → Template via ITemplatePublicApi (generate documents)
Any Service → Gateway never (no upstream calls to gateway)Asynchronous (Azure Service Bus)
Fire-and-forget events published to ASB topics, consumed by worker services:
AppsPortal → ASB: InvoiceCreatedEvent
└── Platforms.Worker consumes → sends notification, updates reporting
AppsPortal → ASB: ZatcaSubmissionRequested
└── Integration.Apis consumes → submits to ZATCA API
Any Service → ASB: AuditLogEvent
└── Platforms.Worker consumes → persists to audit log tableGateway Routing Table
Gateway config files: Platforms/Src/Gateway/Gateway.Apis/ocelot.{env}.json
Port Reference
| Port | Protocol | Used By |
|---|---|---|
| 443 | HTTPS | Azure Front Door (external) |
| 8080 | HTTP | All Container Apps (internal) |
| 1433 | TCP | SQL Server VM |
| 6379 | TCP | Redis (local dev) |
| 10000 | TCP+TLS | Azure Managed Redis |
| 5672 | AMQP | RabbitMQ (local dev) |
| 5341 | HTTP | Seq log ingest |
| 4317 | gRPC | OpenTelemetry collector |
| 4318 | HTTP | OpenTelemetry collector |
Related Diagrams
- Auth Flow — authentication sequence through this topology
- Diagrams Index — interactive HTML diagrams
- Networking — VNet and subnet details