# yeamimhossainsajid/uber-doma-architecture architecture

> Architecture diagram of the GitHub repository yeamimhossainsajid/uber-doma-architecture, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yeamimhossainsajid/uber-doma-architecture
- Repository: https://github.com/yeamimhossainsajid/uber-doma-architecture

## Overview

DOMA is a ride-sharing microservice architecture organized into bounded domains, with a two-tier gateway model: external requests enter through the edge gateway and are routed to domain gateways, which coordinate domain services. A representative ride-offer workflow gathers dispatch, surge-pricing, and ETA results. The README also describes billing, driver, rider, trip, and platform capabilities. Service-to-service wiring is not visible in the sampled service implementations, so the graph avoids asserting unshown calls; documented gateway and workflow relationships cite the README.

Main entry points: [`domain-mobility/mobility-domain-gateway/src/main/java/com/uber/doma/mobility/gateway/MobilityScatterGatherOrchestrator.java`](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/mobility-domain-gateway/src/main/java/com/uber/doma/mobility/gateway/MobilityScatterGatherOrchestrator.java) (Mobility gateway), [`edge-gateway/src/main/java/com/uber/doma/edge/EdgeGatewayApplication.java`](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/edge-gateway/src/main/java/com/uber/doma/edge/EdgeGatewayApplication.java) (Edge gateway), [`domain-mobility/dispatch-coordinator-service/src/main/java/com/uber/doma/domain_mobility/dispatch_coordinator_service/DispatchCoordinatorService.java`](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/dispatch-coordinator-service/src/main/java/com/uber/doma/domain_mobility/dispatch_coordinator_service/DispatchCoordinatorService.java) (Dispatch coordinator), [`domain-mobility/dynamic-surge-service/src/main/java/com/uber/doma/domain_mobility/dynamic_surge_service/DynamicSurgeService.java`](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/dynamic-surge-service/src/main/java/com/uber/doma/domain_mobility/dynamic_surge_service/DynamicSurgeService.java) (Dynamic surge)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mobility["Mobility &amp; Dispatch"]
  node_mob_gateway["Mobility gateway"]
  node_supply["Supply locator"]
  node_demand["Demand pins"]
  node_dispatch["Dispatch coordinator"]
  node_surge["Dynamic surge"]
  node_routing["Routing engine"]
  node_eta["Deep ETA"]
  node_h3["H3 spatial index"]
  node_pool["Pool batching"]
end

subgraph group_billing["Billing"]
  node_bill_gateway["Billing gateway"]
  node_payment["Payment orchestrator"]
  node_fare["Fare quotation"]
  node_split["Fare split"]
  node_ledger["Invoicing ledger"]
  node_payout["Instant payout"]
  node_promo["Rider discounts"]
  node_tax["Tax compliance"]
end

subgraph group_driver["Driver"]
  node_driver_gateway["Driver gateway"]
  node_onboarding["Driver onboarding"]
  node_compliance["Driver compliance"]
  node_fleet["Fleet partners"]
  node_vehicle["Vehicle registry"]
  node_earnings["Earnings analytics"]
  node_quests["Quest incentives"]
end

subgraph group_rider["Rider"]
  node_rider_gateway["Rider gateway"]
  node_auth["Auth security"]
  node_profile["Rider profile"]
  node_fraud["GPS spoofing fraud"]
  node_ratings["Mutual ratings"]
  node_notifications["Notifications"]
  node_membership["One membership"]
end

subgraph group_trip["Trip"]
  node_trip_gateway["Trip gateway"]
end

subgraph group_platform["Platform"]
end

node_client(("Ride client"))
node_edge["Edge gateway"]

node_client -->|"sends request"| node_edge
node_edge -->|"routes to domain"| node_mob_gateway
node_mob_gateway -.->|"requests match"| node_dispatch
node_mob_gateway -.->|"requests surge"| node_surge
node_mob_gateway -.->|"requests ETA"| node_eta
node_dispatch -.->|"returns match"| node_mob_gateway
node_surge -.->|"returns multiplier"| node_mob_gateway
node_eta -.->|"returns prediction"| node_mob_gateway
node_edge -.->|"routes to domain"| node_bill_gateway
node_edge -.->|"routes to domain"| node_driver_gateway
node_edge -.->|"routes to domain"| node_rider_gateway
node_edge -.->|"routes to domain"| node_trip_gateway

click node_edge "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/edge-gateway/src/main/java/com/uber/doma/edge/EdgeGatewayApplication.java"
click node_mob_gateway "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/mobility-domain-gateway/src/main/java/com/uber/doma/mobility/gateway/MobilityScatterGatherOrchestrator.java"
click node_supply "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/supply-locator-service/src/main/java/com/uber/doma/domain_mobility/supply_locator_service/SupplyLocatorService.java"
click node_demand "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/demand-pin-service/src/main/java/com/uber/doma/domain_mobility/demand_pin_service/DemandPinService.java"
click node_dispatch "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/dispatch-coordinator-service/src/main/java/com/uber/doma/domain_mobility/dispatch_coordinator_service/DispatchCoordinatorService.java"
click node_surge "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/dynamic-surge-service/src/main/java/com/uber/doma/domain_mobility/dynamic_surge_service/DynamicSurgeService.java"
click node_routing "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/routing-engine-service/src/main/java/com/uber/doma/domain_mobility/routing_engine_service/RoutingEngineService.java"
click node_eta "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/deep-eta-service/src/main/java/com/uber/doma/domain_mobility/deep_eta_service/DeepEtaService.java"
click node_h3 "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/h3-spatial-index-service/src/main/java/com/uber/doma/domain_mobility/h3_spatial_index_service/H3SpatialIndexService.java"
click node_pool "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/pool-batching-service/src/main/java/com/uber/doma/domain_mobility/pool_batching_service/PoolBatchingService.java"
click node_bill_gateway "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/billing-domain-gateway/src/main/java/com/uber/doma/billing/gateway/BillingGatewayApplication.java"
click node_payment "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/payment-orchestrator-service/src/main/java/com/uber/doma/domain_billing/payment_orchestrator_service/PaymentOrchestratorService.java"
click node_fare "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/fare-quotation-service/src/main/java/com/uber/doma/domain_billing/fare_quotation_service/FareQuotationService.java"
click node_split "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/fare-split-service/src/main/java/com/uber/doma/domain_billing/fare_split_service/FareSplitService.java"
click node_ledger "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/invoicing-ledger-service/src/main/java/com/uber/doma/domain_billing/invoicing_ledger_service/InvoicingLedgerService.java"
click node_payout "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/driver-instant-payout-service/src/main/java/com/uber/doma/domain_billing/driver_instant_payout_service/DriverInstantPayoutService.java"
click node_promo "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/promo-rider-discount-service/src/main/java/com/uber/doma/domain_billing/promo_rider_discount_service/PromoRiderDiscountService.java"
click node_tax "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/tax-compliance-service/src/main/java/com/uber/doma/domain_billing/tax_compliance_service/TaxComplianceService.java"
click node_driver_gateway "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-domain-gateway/src/main/java/com/uber/doma/domain_driver/driver_domain_gateway/DriverGatewayService.java"
click node_onboarding "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-onboarding-service/src/main/java/com/uber/doma/domain_driver/driver_onboarding_service/DriverOnboardingService.java"
click node_compliance "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-compliance-service/src/main/java/com/uber/doma/domain_driver/driver_compliance_service/DriverComplianceService.java"
click node_fleet "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/fleet-partner-service/src/main/java/com/uber/doma/domain_driver/fleet_partner_service/FleetPartnerService.java"
click node_vehicle "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/vehicle-registry-service/src/main/java/com/uber/doma/domain_driver/vehicle_registry_service/VehicleRegistryService.java"
click node_earnings "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-earnings-analytics-service/src/main/java/com/uber/doma/domain_driver/driver_earnings_analytics_service/DriverEarningsAnalyticsService.java"
click node_quests "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-quest-incentives-service/src/main/java/com/uber/doma/domain_driver/driver_quest_incentives_service/DriverQuestIncentivesService.java"
click node_rider_gateway "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/rider-domain-gateway/src/main/java/com/uber/doma/domain_rider/rider_domain_gateway/RiderGatewayService.java"
click node_auth "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/auth-security-service/src/main/java/com/uber/doma/domain_rider/auth_security_service/AuthSecurityService.java"
click node_profile "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/rider-profile-service/src/main/java/com/uber/doma/domain_rider/rider_profile_service/RiderProfileService.java"
click node_fraud "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/fraud-gps-spoofing-service/src/main/java/com/uber/doma/domain_rider/fraud_gps_spoofing_service/FraudGpsSpoofingService.java"
click node_ratings "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/mutual-rating-service/src/main/java/com/uber/doma/domain_rider/mutual_rating_service/MutualRatingService.java"
click node_notifications "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/omnichannel-notifications-service/src/main/java/com/uber/doma/domain_rider/omnichannel_notifications_service/OmnichannelNotificationsService.java"
click node_membership "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/uber-one-membership-service/src/main/java/com/uber/doma/domain_rider/uber_one_membership_service/UberOneMembershipService.java"
click node_trip_gateway "https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-trip/trip-domain-gateway/src/main/java/com/uber/doma/trip/gateway/TripGatewayApplication.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_mob_gateway,node_supply,node_demand,node_dispatch,node_surge,node_routing,node_eta,node_h3,node_pool,node_client toneBlue
class node_bill_gateway,node_payment,node_fare,node_split,node_ledger,node_payout,node_promo,node_tax toneAmber
class node_driver_gateway,node_onboarding,node_compliance,node_fleet,node_vehicle,node_earnings,node_quests toneMint
class node_rider_gateway,node_auth,node_profile,node_fraud,node_ratings,node_notifications,node_membership toneRose
class node_trip_gateway toneIndigo
class node_edge toneTeal
```

## Components

### Mobility & Dispatch

- [Mobility gateway](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/mobility-domain-gateway/src/main/java/com/uber/doma/mobility/gateway/MobilityScatterGatherOrchestrator.java): `domain-mobility/mobility-domain-gateway/src/main/java/com/uber/doma/mobility/gateway/MobilityScatterGatherOrchestrator.java`
- [Supply locator](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/supply-locator-service/src/main/java/com/uber/doma/domain_mobility/supply_locator_service/SupplyLocatorService.java): `domain-mobility/supply-locator-service/src/main/java/com/uber/doma/domain_mobility/supply_locator_service/SupplyLocatorService.java`
- [Demand pins](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/demand-pin-service/src/main/java/com/uber/doma/domain_mobility/demand_pin_service/DemandPinService.java): `domain-mobility/demand-pin-service/src/main/java/com/uber/doma/domain_mobility/demand_pin_service/DemandPinService.java`
- [Dispatch coordinator](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/dispatch-coordinator-service/src/main/java/com/uber/doma/domain_mobility/dispatch_coordinator_service/DispatchCoordinatorService.java): `domain-mobility/dispatch-coordinator-service/src/main/java/com/uber/doma/domain_mobility/dispatch_coordinator_service/DispatchCoordinatorService.java`
- [Dynamic surge](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/dynamic-surge-service/src/main/java/com/uber/doma/domain_mobility/dynamic_surge_service/DynamicSurgeService.java): `domain-mobility/dynamic-surge-service/src/main/java/com/uber/doma/domain_mobility/dynamic_surge_service/DynamicSurgeService.java`
- [Routing engine](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/routing-engine-service/src/main/java/com/uber/doma/domain_mobility/routing_engine_service/RoutingEngineService.java): `domain-mobility/routing-engine-service/src/main/java/com/uber/doma/domain_mobility/routing_engine_service/RoutingEngineService.java`
- [Deep ETA](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/deep-eta-service/src/main/java/com/uber/doma/domain_mobility/deep_eta_service/DeepEtaService.java): `domain-mobility/deep-eta-service/src/main/java/com/uber/doma/domain_mobility/deep_eta_service/DeepEtaService.java`
- [H3 spatial index](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/h3-spatial-index-service/src/main/java/com/uber/doma/domain_mobility/h3_spatial_index_service/H3SpatialIndexService.java): `domain-mobility/h3-spatial-index-service/src/main/java/com/uber/doma/domain_mobility/h3_spatial_index_service/H3SpatialIndexService.java`
- [Pool batching](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-mobility/pool-batching-service/src/main/java/com/uber/doma/domain_mobility/pool_batching_service/PoolBatchingService.java): `domain-mobility/pool-batching-service/src/main/java/com/uber/doma/domain_mobility/pool_batching_service/PoolBatchingService.java`

### Billing

- [Billing gateway](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/billing-domain-gateway/src/main/java/com/uber/doma/billing/gateway/BillingGatewayApplication.java): `domain-billing/billing-domain-gateway/src/main/java/com/uber/doma/billing/gateway/BillingGatewayApplication.java`
- [Payment orchestrator](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/payment-orchestrator-service/src/main/java/com/uber/doma/domain_billing/payment_orchestrator_service/PaymentOrchestratorService.java): `domain-billing/payment-orchestrator-service/src/main/java/com/uber/doma/domain_billing/payment_orchestrator_service/PaymentOrchestratorService.java`
- [Fare quotation](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/fare-quotation-service/src/main/java/com/uber/doma/domain_billing/fare_quotation_service/FareQuotationService.java): `domain-billing/fare-quotation-service/src/main/java/com/uber/doma/domain_billing/fare_quotation_service/FareQuotationService.java`
- [Fare split](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/fare-split-service/src/main/java/com/uber/doma/domain_billing/fare_split_service/FareSplitService.java): `domain-billing/fare-split-service/src/main/java/com/uber/doma/domain_billing/fare_split_service/FareSplitService.java`
- [Invoicing ledger](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/invoicing-ledger-service/src/main/java/com/uber/doma/domain_billing/invoicing_ledger_service/InvoicingLedgerService.java): `domain-billing/invoicing-ledger-service/src/main/java/com/uber/doma/domain_billing/invoicing_ledger_service/InvoicingLedgerService.java`
- [Instant payout](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/driver-instant-payout-service/src/main/java/com/uber/doma/domain_billing/driver_instant_payout_service/DriverInstantPayoutService.java): `domain-billing/driver-instant-payout-service/src/main/java/com/uber/doma/domain_billing/driver_instant_payout_service/DriverInstantPayoutService.java`
- [Rider discounts](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/promo-rider-discount-service/src/main/java/com/uber/doma/domain_billing/promo_rider_discount_service/PromoRiderDiscountService.java): `domain-billing/promo-rider-discount-service/src/main/java/com/uber/doma/domain_billing/promo_rider_discount_service/PromoRiderDiscountService.java`
- [Tax compliance](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-billing/tax-compliance-service/src/main/java/com/uber/doma/domain_billing/tax_compliance_service/TaxComplianceService.java): `domain-billing/tax-compliance-service/src/main/java/com/uber/doma/domain_billing/tax_compliance_service/TaxComplianceService.java`

### Driver

- [Driver gateway](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-domain-gateway/src/main/java/com/uber/doma/domain_driver/driver_domain_gateway/DriverGatewayService.java): `domain-driver/driver-domain-gateway/src/main/java/com/uber/doma/domain_driver/driver_domain_gateway/DriverGatewayService.java`
- [Driver onboarding](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-onboarding-service/src/main/java/com/uber/doma/domain_driver/driver_onboarding_service/DriverOnboardingService.java): `domain-driver/driver-onboarding-service/src/main/java/com/uber/doma/domain_driver/driver_onboarding_service/DriverOnboardingService.java`
- [Driver compliance](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-compliance-service/src/main/java/com/uber/doma/domain_driver/driver_compliance_service/DriverComplianceService.java): `domain-driver/driver-compliance-service/src/main/java/com/uber/doma/domain_driver/driver_compliance_service/DriverComplianceService.java`
- [Fleet partners](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/fleet-partner-service/src/main/java/com/uber/doma/domain_driver/fleet_partner_service/FleetPartnerService.java): `domain-driver/fleet-partner-service/src/main/java/com/uber/doma/domain_driver/fleet_partner_service/FleetPartnerService.java`
- [Vehicle registry](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/vehicle-registry-service/src/main/java/com/uber/doma/domain_driver/vehicle_registry_service/VehicleRegistryService.java): `domain-driver/vehicle-registry-service/src/main/java/com/uber/doma/domain_driver/vehicle_registry_service/VehicleRegistryService.java`
- [Earnings analytics](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-earnings-analytics-service/src/main/java/com/uber/doma/domain_driver/driver_earnings_analytics_service/DriverEarningsAnalyticsService.java): `domain-driver/driver-earnings-analytics-service/src/main/java/com/uber/doma/domain_driver/driver_earnings_analytics_service/DriverEarningsAnalyticsService.java`
- [Quest incentives](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-driver/driver-quest-incentives-service/src/main/java/com/uber/doma/domain_driver/driver_quest_incentives_service/DriverQuestIncentivesService.java): `domain-driver/driver-quest-incentives-service/src/main/java/com/uber/doma/domain_driver/driver_quest_incentives_service/DriverQuestIncentivesService.java`

### Rider

- [Rider gateway](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/rider-domain-gateway/src/main/java/com/uber/doma/domain_rider/rider_domain_gateway/RiderGatewayService.java): `domain-rider/rider-domain-gateway/src/main/java/com/uber/doma/domain_rider/rider_domain_gateway/RiderGatewayService.java`
- [Auth security](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/auth-security-service/src/main/java/com/uber/doma/domain_rider/auth_security_service/AuthSecurityService.java): `domain-rider/auth-security-service/src/main/java/com/uber/doma/domain_rider/auth_security_service/AuthSecurityService.java`
- [Rider profile](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/rider-profile-service/src/main/java/com/uber/doma/domain_rider/rider_profile_service/RiderProfileService.java): `domain-rider/rider-profile-service/src/main/java/com/uber/doma/domain_rider/rider_profile_service/RiderProfileService.java`
- [GPS spoofing fraud](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/fraud-gps-spoofing-service/src/main/java/com/uber/doma/domain_rider/fraud_gps_spoofing_service/FraudGpsSpoofingService.java): `domain-rider/fraud-gps-spoofing-service/src/main/java/com/uber/doma/domain_rider/fraud_gps_spoofing_service/FraudGpsSpoofingService.java`
- [Mutual ratings](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/mutual-rating-service/src/main/java/com/uber/doma/domain_rider/mutual_rating_service/MutualRatingService.java): `domain-rider/mutual-rating-service/src/main/java/com/uber/doma/domain_rider/mutual_rating_service/MutualRatingService.java`
- [Notifications](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/omnichannel-notifications-service/src/main/java/com/uber/doma/domain_rider/omnichannel_notifications_service/OmnichannelNotificationsService.java): `domain-rider/omnichannel-notifications-service/src/main/java/com/uber/doma/domain_rider/omnichannel_notifications_service/OmnichannelNotificationsService.java`
- [One membership](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-rider/uber-one-membership-service/src/main/java/com/uber/doma/domain_rider/uber_one_membership_service/UberOneMembershipService.java): `domain-rider/uber-one-membership-service/src/main/java/com/uber/doma/domain_rider/uber_one_membership_service/UberOneMembershipService.java`

### Trip

- [Trip gateway](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/domain-trip/trip-domain-gateway/src/main/java/com/uber/doma/trip/gateway/TripGatewayApplication.java): `domain-trip/trip-domain-gateway/src/main/java/com/uber/doma/trip/gateway/TripGatewayApplication.java`

### Other components

- **Ride client**
- [Edge gateway](https://github.com/yeamimhossainsajid/uber-doma-architecture/blob/main/edge-gateway/src/main/java/com/uber/doma/edge/EdgeGatewayApplication.java): `edge-gateway/src/main/java/com/uber/doma/edge/EdgeGatewayApplication.java`

## Connections

- Ride client → Edge gateway: sends request
- Edge gateway → Mobility gateway: routes to domain
- Mobility gateway → Dispatch coordinator: requests match
- Mobility gateway → Dynamic surge: requests surge
- Mobility gateway → Deep ETA: requests ETA
- Dispatch coordinator → Mobility gateway: returns match
- Dynamic surge → Mobility gateway: returns multiplier
- Deep ETA → Mobility gateway: returns prediction
- Edge gateway → Billing gateway: routes to domain
- Edge gateway → Driver gateway: routes to domain
- Edge gateway → Rider gateway: routes to domain
- Edge gateway → Trip gateway: routes to domain
