Skip to content

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

ServiceImageMin ReplicasMax ReplicasExternal URL
Gateway.APIgateway-apis210{domain}/api/*
Keycloakbitnami/keycloak:2224{domain}/auth/*

Private CAE — ERP Services

ServiceImageMin ReplicasMax ReplicasInternal FQDN Pattern
AppsPortal.Apisapps-portal-apis115mic-erp-be-{env}-apps-portal
Inventory.Apisinventory-apis110mic-erp-be-{env}-inventory
HR.Apishr-apis110mic-erp-be-{env}-hr

Private CAE — Business Owner Portal

ServiceImageMin ReplicasMax ReplicasInternal FQDN Pattern
BusinessOwners.Apisbusiness-owners-apis18mic-erp-be-{env}-business-owners

Private CAE — Infrastructure Services

ServiceImageMin ReplicasMax ReplicasInternal FQDN Pattern
Attachment.Apisattachment-apis15mic-erp-be-{env}-attachment
Notification.Apisnotification-apis15mic-erp-be-{env}-notification
Workflows.Apisworkflows-apis15mic-erp-be-{env}-workflows
Template.Apistemplate-apis15mic-erp-be-{env}-template
Integration.Apisintegration-apis15mic-erp-be-{env}-integration
Platforms.Workerplatforms-worker18mic-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 table

Gateway Routing Table

Gateway config files: Platforms/Src/Gateway/Gateway.Apis/ocelot.{env}.json


Port Reference

PortProtocolUsed By
443HTTPSAzure Front Door (external)
8080HTTPAll Container Apps (internal)
1433TCPSQL Server VM
6379TCPRedis (local dev)
10000TCP+TLSAzure Managed Redis
5672AMQPRabbitMQ (local dev)
5341HTTPSeq log ingest
4317gRPCOpenTelemetry collector
4318HTTPOpenTelemetry collector

Internal Documentation — Microtec Platform Team