How yeamimhossainsajid/uber-doma-architecture works
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: MobilityScatterGatherOrchestrator.java Mobility gateway · EdgeGatewayApplication.java Edge gateway · DispatchCoordinatorService.java Dispatch coordinator · DynamicSurgeService.java Dynamic surge
Components 34
Mobility & Dispatch
- Mobility gateway
domain-mobility/mobility-domain-gateway/src/main/java/com/uber/doma/mobility/gateway/MobilityScatterGatherOrchestrator.java - Supply locator
domain-mobility/supply-locator-service/src/main/java/com/uber/doma/domain_mobility/supply_locator_service/SupplyLocatorService.java - Demand pins
domain-mobility/demand-pin-service/src/main/java/com/uber/doma/domain_mobility/demand_pin_service/DemandPinService.java - Dispatch coordinator
domain-mobility/dispatch-coordinator-service/src/main/java/com/uber/doma/domain_mobility/dispatch_coordinator_service/DispatchCoordinatorService.java - Dynamic surge
domain-mobility/dynamic-surge-service/src/main/java/com/uber/doma/domain_mobility/dynamic_surge_service/DynamicSurgeService.java - Routing engine
domain-mobility/routing-engine-service/src/main/java/com/uber/doma/domain_mobility/routing_engine_service/RoutingEngineService.java - Deep ETA
domain-mobility/deep-eta-service/src/main/java/com/uber/doma/domain_mobility/deep_eta_service/DeepEtaService.java - H3 spatial index
domain-mobility/h3-spatial-index-service/src/main/java/com/uber/doma/domain_mobility/h3_spatial_index_service/H3SpatialIndexService.java - Pool batching
domain-mobility/pool-batching-service/src/main/java/com/uber/doma/domain_mobility/pool_batching_service/PoolBatchingService.java
Billing
- Billing gateway
domain-billing/billing-domain-gateway/src/main/java/com/uber/doma/billing/gateway/BillingGatewayApplication.java - Payment orchestrator
domain-billing/payment-orchestrator-service/src/main/java/com/uber/doma/domain_billing/payment_orchestrator_service/PaymentOrchestratorService.java - Fare quotation
domain-billing/fare-quotation-service/src/main/java/com/uber/doma/domain_billing/fare_quotation_service/FareQuotationService.java - Fare split
domain-billing/fare-split-service/src/main/java/com/uber/doma/domain_billing/fare_split_service/FareSplitService.java - Invoicing ledger
domain-billing/invoicing-ledger-service/src/main/java/com/uber/doma/domain_billing/invoicing_ledger_service/InvoicingLedgerService.java - Instant payout
domain-billing/driver-instant-payout-service/src/main/java/com/uber/doma/domain_billing/driver_instant_payout_service/DriverInstantPayoutService.java - Rider discounts
domain-billing/promo-rider-discount-service/src/main/java/com/uber/doma/domain_billing/promo_rider_discount_service/PromoRiderDiscountService.java - Tax compliance
domain-billing/tax-compliance-service/src/main/java/com/uber/doma/domain_billing/tax_compliance_service/TaxComplianceService.java
Driver
- Driver gateway
domain-driver/driver-domain-gateway/src/main/java/com/uber/doma/domain_driver/driver_domain_gateway/DriverGatewayService.java - Driver onboarding
domain-driver/driver-onboarding-service/src/main/java/com/uber/doma/domain_driver/driver_onboarding_service/DriverOnboardingService.java - Driver compliance
domain-driver/driver-compliance-service/src/main/java/com/uber/doma/domain_driver/driver_compliance_service/DriverComplianceService.java - Fleet partners
domain-driver/fleet-partner-service/src/main/java/com/uber/doma/domain_driver/fleet_partner_service/FleetPartnerService.java - Vehicle registry
domain-driver/vehicle-registry-service/src/main/java/com/uber/doma/domain_driver/vehicle_registry_service/VehicleRegistryService.java - Earnings analytics
domain-driver/driver-earnings-analytics-service/src/main/java/com/uber/doma/domain_driver/driver_earnings_analytics_service/DriverEarningsAnalyticsService.java - Quest incentives
domain-driver/driver-quest-incentives-service/src/main/java/com/uber/doma/domain_driver/driver_quest_incentives_service/DriverQuestIncentivesService.java
Rider
- Rider gateway
domain-rider/rider-domain-gateway/src/main/java/com/uber/doma/domain_rider/rider_domain_gateway/RiderGatewayService.java - Auth security
domain-rider/auth-security-service/src/main/java/com/uber/doma/domain_rider/auth_security_service/AuthSecurityService.java - Rider profile
domain-rider/rider-profile-service/src/main/java/com/uber/doma/domain_rider/rider_profile_service/RiderProfileService.java - GPS spoofing fraud
domain-rider/fraud-gps-spoofing-service/src/main/java/com/uber/doma/domain_rider/fraud_gps_spoofing_service/FraudGpsSpoofingService.java - Mutual ratings
domain-rider/mutual-rating-service/src/main/java/com/uber/doma/domain_rider/mutual_rating_service/MutualRatingService.java - Notifications
domain-rider/omnichannel-notifications-service/src/main/java/com/uber/doma/domain_rider/omnichannel_notifications_service/OmnichannelNotificationsService.java - One membership
domain-rider/uber-one-membership-service/src/main/java/com/uber/doma/domain_rider/uber_one_membership_service/UberOneMembershipService.java
Trip
- Trip gateway
domain-trip/trip-domain-gateway/src/main/java/com/uber/doma/trip/gateway/TripGatewayApplication.java
Other components
- Ride client
- Edge gateway
edge-gateway/src/main/java/com/uber/doma/edge/EdgeGatewayApplication.java
Connections 12
- 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