0% found this document useful (0 votes)
2 views41 pages

Design Question

Uploaded by

parthakunt
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views41 pages

Design Question

Uploaded by

parthakunt
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

amazon

ENTERPRISE ARCHITECTURE

Full Amazon Mobile Android App


System Design 2026
Enterprise Android & Cloud Architecture — Production-Ready Documentation

Kotlin Jetpack Compose


Clean Architecture MVVM+MVI Microservices AWS Kubernetes Kafka PostgreSQL Redis

28 100+ 20+ 99.99%


Sections Components Services Uptime SLA

Document Type: Enterprise System Design

Version: 3.2.1 — 2026 Edition

Audience: CTO · Principal Engineer · Senior Android Dev

Prepared by: Architecture & Platform Engineering

Classification: Confidential — Internal Use

Last Updated: May 2026


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

Table of Contents
1. Product Overview & Core Features
2. Android Application Architecture
3. Android Project Structure & Module Responsibilities
4. Jetpack Compose Design System
5. Backend System Design & Microservices
6. Database Design & Schema
7. Networking Architecture
8. Dependency Injection with Koin
9. Coroutines & Concurrency Model
10. Room Database & Offline-First Architecture
11. Real-Time Features & Event Streaming
12. AI Integration & Recommendation Engine
13. Cloud Infrastructure (AWS)
14. DevOps & CI/CD Pipelines
15. Security Architecture
16. Scalability & Performance Strategy
17. Monitoring & Observability
18. Testing Strategy & QA
19. Analytics Architecture
20. Multi-Platform Strategy
21. Architecture Diagrams Reference
22. Technology Comparison Tables
23. Performance Metrics & SLAs
24. Advanced Topics
25. UI/UX Architecture
26. Deployment Strategy
27. Cost Optimization
28. Future Improvements & Roadmap

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 2


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

1. Product Overview & Core Features


This document describes the complete enterprise-grade system design for an Amazon-scale e-commerce mobile
application targeting Android. The platform is designed to support millions of concurrent users, handle peak traffic
events (Prime Day, Black Friday), and maintain 99.99% uptime SLA across global regions. Every architectural
decision is driven by the principles of scalability, resilience, observability, and developer velocity.

1.1 Core Feature Matrix


Feature Module Priority Tech Stack

User Authentication auth P0 OAuth2, JWT, Biometric

Product Listing product P0 Compose LazyGrid, Paging 3

AI-Powered Search search P0 Elasticsearch, Vector DB

Shopping Cart cart P0 Room, StateFlow, Ktor

Checkout & Payment payment P0 Stripe SDK, 3DS2

Order Tracking orders P0 WebSocket, Kafka, Maps SDK

Push Notifications notifications P1 FCM, SNS

Wishlist product P1 Room, Sync Worker

Reviews & Ratings product P1 Ktor, ML Sentiment

AI Recommendations ai P1 TensorFlow Lite, OpenAI

Voice Search search P2 SpeechRecognizer, NLP

Offline Support core P1 Room, WorkManager

Multi-language / i18n core P2 Android Localization

Dark Mode designsystem P1 Material 3 Dynamic Color

Seller Dashboard seller P2 Admin API, Analytics

Real-time Inventory inventory P1 Kafka, WebSocket

Chat Support chat P2 WebSocket, AI Chatbot

Delivery Tracking orders P0 Google Maps, Kafka

Admin Dashboard admin P2 Compose Web, REST APIs

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 3


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

1.2 Non-Functional Requirements


NFR Category Target SLA / Metric

Availability 99.99% uptime (< 52 min downtime/year)

API Response Time (p50) < 120 ms

API Response Time (p99) < 500 ms

Mobile App Cold Start < 1.2 seconds

Throughput 500,000 req/min peak

Concurrent Users 10 million globally

Data Durability 99.999999999% (11 nines) — S3 standard

RTO (Recovery Time) < 4 hours

RPO (Recovery Point) < 15 minutes

Android Min SDK API 24 (Android 7.0) — covers 95%+ devices

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 4


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

2. Android Application Architecture


The Android application follows a Clean Architecture pattern combined with an MVVM + MVI hybrid presentation
pattern. This separation ensures testability, maintainability, and enables independent scaling of each architectural
layer. The unidirectional data flow (UDF) paradigm is enforced throughout all UI components using Jetpack Compose's
state hoisting and StateFlow.

2.1 Architecture Layers — Visual Overview

Presentation Layer

Jetpack Compose · ViewModels · Navigation · UI State

Domain Layer

UseCases · Business Rules · Domain Models · Repository Interfaces

Data Layer

Repository Impl · Remote DS · Local DS · DTO Mapping

Core / Infra

Koin DI · Ktor Client · Room DB · Coroutines · Flow

Figure 1 — Android Clean Architecture Layers

2.2 Presentation Layer


The presentation layer is built exclusively with Jetpack Compose and follows strict MVVM principles. ViewModels
expose immutable UI state via StateFlow, and screens observe and render this state reactively. Navigation is handled

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 5


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

by the Compose Navigation component with type-safe arguments.

• Composable Screens: Each feature screen is a stateless composable accepting UI state and lambdas
• ViewModel: Processes user intents, calls UseCases, maps results to UiState sealed classes
• UiState: Sealed classes representing Loading, Success, Error, Empty states
• Navigation: NavHost with deep-link support, back-stack management, animated transitions
• Compose Performance: derivedStateOf, remember, key(), stable annotations, baseline profiles

2.3 Domain Layer


The domain layer is framework-independent and contains the core business logic. It defines the contracts (interfaces)
that the data layer must fulfill and exposes UseCases as the single entry point for business operations.
// Example UseCase
class GetProductsUseCase(
private val productRepository: ProductRepository
) {
operator fun invoke(categoryId: String): Flow>> =
[Link](categoryId)
.map { products -> [Link] { [Link] } }
.catch { e -> emit([Link](e)) }
}

2.4 Data Layer


The data layer implements repository interfaces defined in the domain layer. It coordinates between
RemoteDataSource (Ktor HTTP client) and LocalDataSource (Room database) using an offline-first strategy.
class ProductRepositoryImpl(
private val remoteSource: ProductRemoteDataSource,
private val localSource: ProductLocalDataSource
) : ProductRepository {
override fun getProducts(categoryId: String): Flow>> = flow {
// 1. Emit cached data immediately
emit([Link]([Link](categoryId).map { [Link]() }))
// 2. Fetch fresh data from network
val fresh = [Link](categoryId)
[Link]([Link] { [Link]() })
emit([Link]([Link] { [Link]() }))
}
}

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 6


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

3. Android Project Structure & Module Responsibilities


The project uses a multi-module Android architecture to enforce separation of concerns, speed up incremental
builds (parallel compilation), and enable code sharing across feature teams. Each module is independently buildable
and testable.

3.1 Module Dependency Graph


[Link]
■■■ :app # Application shell, DI graph root
■■■ :core
■ ■■■ :core:common # Kotlin extensions, base classes, Result wrapper
■ ■■■ :core:network # Ktor client, interceptors, network models
■ ■■■ :core:database # Room DB, DAOs, migrations, type converters
■ ■■■ :core:di # Koin modules, application scope bindings
■ ■■■ :core:testing # Test utilities, fakes, shared test rules
■■■ :designsystem # Material 3 theme, typography, colors, components
■■■ :domain # UseCases, Repository interfaces, Domain models
■■■ :data # Repository implementations, DTOs, mappers
■■■ :feature
■ ■■■ :feature:auth # Login, Register, OAuth2, Biometric
■ ■■■ :feature:home # Home feed, banners, featured products
■ ■■■ :feature:search # Search bar, results, filters, voice search
■ ■■■ :feature:product # Product detail, images, reviews, wishlist
■ ■■■ :feature:cart # Cart management, quantity, promo codes
■ ■■■ :feature:payment # Checkout flow, payment methods, 3DS2
■ ■■■ :feature:orders # Order history, live tracking, returns
■ ■■■ :feature:profile # User profile, settings, addresses
■ ■■■ :feature:notifications # FCM, in-app notifications, preferences
■ ■■■ :feature:ai # Recommendations, personalized feed
■ ■■■ :feature:seller # Seller portal, analytics, inventory
■■■ :analytics # Firebase, Mixpanel, event tracking

3.2 Module Responsibilities Summary


Module Responsibility Dependencies

:app DI wiring, NavHost, app entry point All feature modules

:core:network Ktor client setup, auth interceptors, error handling :core:common

:core:database Room database, DAOs, migration scripts :core:common

Material 3 tokens, reusable Compose


:designsystem Compose BOM
components

:domain Business rules, UseCase orchestration None (pure Kotlin)

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 7


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

Module Responsibility Dependencies

:data API calls, caching, DTO↔Domain mapping :domain, :core:network, :core:database

:feature:auth Auth flow, token management, session handling :domain, :designsystem

:feature:cart Cart state, sync with backend, promo logic :domain, :designsystem

:feature:payment Stripe integration, PCI compliance, 3DS2 :domain, :core:network

:analytics Event batching, user properties, funnels :core:common

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 8


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

4. Jetpack Compose Design System


The design system is built on top of Material 3 and provides a consistent visual language across all features. It
abstracts tokens (colors, typography, spacing) into a centralized theme, enabling dark mode, dynamic color (Android
12+), and brand consistency.

4.1 Color System & Typography


// [Link]
object AmazonColors {
val Primary = Color(0xFFFF9900) // Amazon Orange
val OnPrimary = Color(0xFF131921)
val Secondary = Color(0xFF146EB4) // Amazon Blue
val Surface = Color(0xFFF8F9FA)
val SurfaceDark = Color(0xFF1E1E2E)
val Error = Color(0xFFE31C23)
val Success = Color(0xFF00A651)
}

val AmazonTypography = Typography(


displayLarge = TextStyle(fontFamily = AmazonFont, fontWeight = W700, fontSize = [Link]),
headlineMedium= TextStyle(fontFamily = AmazonFont, fontWeight = W600, fontSize = [Link]),
bodyLarge = TextStyle(fontFamily = AmazonFont, fontWeight = W400, fontSize = [Link]),
labelSmall = TextStyle(fontFamily = AmazonFont, fontWeight = W500, fontSize = [Link])
)

4.2 Reusable Component Library


ProductCard SearchBar BottomNavBar PriceTag

RatingStars CartBadge ImageCarousel ShimmerPlaceholder

ErrorState EmptyState QuantitySelector AddToCartButton

FilterChip DeliveryBadge PaginatedLazyColumn ProgressStep

ReviewCard

4.3 Product Card Composable


@Composable
fun ProductCard(
product: Product,
onAddToCart: (Product) -> Unit,
modifier: Modifier = Modifier
) {
Card(
modifier = [Link](),
shape = RoundedCornerShape([Link]),

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 9


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

elevation = [Link](defaultElevation = [Link])


) {
Column {
AsyncImage(
model = [Link],
contentDescription = [Link],
modifier = [Link]().height([Link]),
contentScale = [Link],
placeholder = rememberShimmerEffect() // Shimmer while loading
)
Text(text = [Link], style = [Link],
maxLines = 2, overflow = [Link])
PriceTag(price = [Link], discount = [Link])
AddToCartButton(onClick = { onAddToCart(product) })
}
}
}

4.4 Compose Performance Optimization


• derivedStateOf: Compute derived values only when their inputs change
• remember { }: Cache expensive computations across recompositions
• key(): Assign stable keys in LazyColumn to prevent unnecessary recompositions
• @Stable / @Immutable: Mark data classes to skip stability checks
• Baseline Profiles: Pre-compile critical code paths for faster startup
• Lazy pagination: Use Paging 3 with LazyColumn to load data incrementally
• Image caching: Coil with disk + memory cache, WebP format, lazy loading
• Recomposition tracing: Use Layout Inspector and Macrobenchmark for profiling

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 10


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

5. Backend System Design & Microservices


The backend follows a microservices architecture where each service owns its data and communicates via REST
APIs (synchronous) and Apache Kafka (asynchronous events). All services are containerized with Docker and
orchestrated by Kubernetes (EKS).

5.1 Backend Architecture Diagram

API Gateway

User Svc Product Svc Order Svc Payment Svc Search Svc Notif. Svc

Kafka Bus

PostgreSQL MongoDB Redis Elastic

Figure 2 — Backend Microservices Architecture

5.2 Service Catalog

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 11


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

Service Technology Database Key Responsibility

AWS API GW +
API Gateway — Routing, Auth, Rate limiting, SSL termination
Kong

User Service Kotlin Ktor PostgreSQL Registration, Login, JWT/OAuth2, Sessions

PostgreSQL +
Product Service Java Spring Boot Catalog, Categories, Images (S3)
MongoDB

Search Service Java Spring Boot Elasticsearch Full-text search, AI suggestions, Filters

Order Service Kotlin Ktor PostgreSQL Order lifecycle, Status, Returns

Payment Service Java Spring Boot PostgreSQL Stripe/PayPal, PCI compliance, Refunds

Notification Svc Kotlin Ktor Redis FCM push, Email (SES), SMS (SNS)

Recommendatio
Python FastAPI Pinecone DB ML recommendations, Collaborative filtering
n Svc

Inventory Service Kotlin Ktor PostgreSQL + Redis Real-time stock, Reservation

Seller Service Java Spring Boot PostgreSQL Vendor onboarding, Payouts, Analytics

Analytics Service Python FastAPI ClickHouse Event ingestion, Funnels, Revenue metrics

Chat Service [Link] / WS MongoDB WebSocket chat, AI bot integration

5.3 Service Communication Patterns


Synchronous (REST/gRPC): Used for user-facing read operations requiring low latency (product fetch, search).
gRPC is used for internal service-to-service calls (order→payment) due to lower overhead and strong typing via
Protocol Buffers.

Asynchronous (Kafka Events): Used for state-change propagation: OrderPlaced, PaymentConfirmed,


InventoryUpdated, NotificationTriggered. This decouples producers from consumers and provides resilience through
message replay.
// Kafka event example
data class OrderPlacedEvent(
val eventId: String,
val orderId: String,
val userId: String,
val items: List,
val totalAmount: BigDecimal,
val timestamp: Instant
)
// Topics: [Link], [Link], [Link], [Link]

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 12


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

6. Database Design & Schema

6.1 Database Selection Matrix


Database Type Use Case Scaling Strategy

PostgreSQL 16 Relational Users, Orders, Payments, Products Read replicas, Partitioning

MongoDB 7.0 Document Product catalog, Reviews, Config Sharding, Replica sets

Redis 7.2 In-memory KV Sessions, Cache, Rate limiting Cluster mode, Sentinel

Elasticsearch Search engine Full-text search, Analytics Index sharding, Hot-warm

Pinecone Vector DB AI embeddings, Recommendations Managed cloud scaling

ClickHouse OLAP/Column Analytics, Event logs, Metrics Horizontal sharding

Room (SQLite) Mobile local Android offline cache WAL mode, Migrations

6.2 Core Table Schemas

Table: users
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
phone VARCHAR(20) UNIQUE,
password_hash VARCHAR(255) NOT NULL,
full_name VARCHAR(255) NOT NULL,
avatar_url TEXT,
role user_role ENUM('BUYER','SELLER','ADMIN') DEFAULT 'BUYER',
is_verified BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
);

Table: products
CREATE TABLE products (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
seller_id UUID REFERENCES users(id) ON DELETE CASCADE,
category_id UUID REFERENCES categories(id),
title VARCHAR(512) NOT NULL,
description TEXT,
price DECIMAL(12,2) NOT NULL,
discount_pct SMALLINT DEFAULT 0 CHECK (discount_pct BETWEEN 0 AND 100),
stock_qty INTEGER NOT NULL DEFAULT 0,
sku VARCHAR(100) UNIQUE NOT NULL,

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 13


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

rating_avg DECIMAL(3,2) DEFAULT 0.0,


is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMPTZ DEFAULT NOW(),
);

Table: orders
CREATE TABLE orders (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
status order_status ENUM('PENDING','CONFIRMED','SHIPPED','DELIVERED','CANCELLED'),
total_amount DECIMAL(14,2) NOT NULL,
shipping_addr JSONB NOT NULL,
payment_id UUID REFERENCES payments(id),
tracking_no VARCHAR(100),
estimated_at TIMESTAMPTZ,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
);

6.3 Indexing Strategy


CREATE INDEX idx_products_category ON products(category_id) WHERE is_active = TRUE;

CREATE INDEX idx_products_seller ON products(seller_id);

CREATE INDEX idx_orders_user ON orders(user_id, created_at DESC);

CREATE INDEX idx_users_email ON users(email) WHERE is_verified = TRUE;

CREATE INDEX idx_reviews_product ON reviews(product_id, created_at DESC);

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 14


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

7. Networking Architecture

7.1 Ktor Client Setup


val httpClient = HttpClient(OkHttp) {
install(ContentNegotiation) { json(Json { ignoreUnknownKeys = true }) }
install(Auth) {
bearer {
loadTokens { BearerTokens([Link], [Link]) }
refreshTokens { [Link]() }
}
}
install(HttpTimeout) {
requestTimeoutMillis = 30_000
connectTimeoutMillis = 15_000
socketTimeoutMillis = 20_000
}
install(Logging) { level = [Link] }
install(HttpRequestRetry) {
retryOnServerErrors(maxRetries = 3)
exponentialDelay()
}
}

7.2 Ktor vs Retrofit Comparison


Feature Ktor Client Retrofit 2

Language Kotlin-first, coroutine-native Java-origin, Kotlin adapter

Serialization [Link] built-in Gson/Moshi/kotlinx adapters

Multiplatform Yes — iOS, JS, JVM, WASM Android/JVM only

WebSocket Native support Separate OkHttp WebSocket

SSE Support Native streaming Limited / manual

Auth Plugin Bearer plugin built-in OkHttp interceptor

Mock Testing MockEngine built-in MockWebServer (OkHttp)

Recommendation ■ Preferred for new KMP projects ■ Proven, large ecosystem

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 15


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

8. Dependency Injection with Koin


// [Link]
val networkModule = module {
single { provideHttpClient(get()) }
single { ProductApiService(get()) }
single { UserApiService(get()) }
single { OrderApiService(get()) }
}

// [Link]
val domainModule = module {
factory { GetProductsUseCase(get()) }
factory { SearchProductsUseCase(get()) }
factory { PlaceOrderUseCase(get(), get()) }
}

// [Link]
val productModule = module {
viewModel { ProductListViewModel(get(), get()) }
viewModel { params -> ProductDetailViewModel(get(), [Link]()) }
}

// Application
class AmazonApp : Application() {
override fun onCreate() {
[Link]()
startKoin {
androidContext(this@AmazonApp)
modules(networkModule, domainModule, productModule, /* ... */)
}
}
}

8.1 Koin vs Hilt Comparison


Criteria Koin 3.5 Hilt 2.x

Setup complexity Minimal — no annotation processing Requires KAPT/KSP setup

Compile time Faster builds (runtime DI) Slower (code generation)

Multiplatform Yes — KMP compatible Android only

Performance Slight runtime cost Zero runtime overhead

Coroutine scope viewModelScope built-in viewModelScope built-in

Test support koinTest, startKoin in tests HiltAndroidTest annotations

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 16


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

Criteria Koin 3.5 Hilt 2.x

Google support Community / Kotzilla Official Google / Jetpack

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 17


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

9. Coroutines & Concurrency Model


The application uses Kotlin Coroutines with structured concurrency throughout. All async operations are scoped to
appropriate lifecycle owners to prevent leaks. Data streams are modeled as Flow / StateFlow / SharedFlow
depending on their semantics.
// ViewModel — structured concurrency
class CartViewModel(private val cartUseCase: CartUseCase) : ViewModel() {
private val _uiState = MutableStateFlow([Link])
val uiState: StateFlow = _uiState.asStateFlow()

fun loadCart() {
[Link] {
[Link]()
.flowOn([Link])
.catch { e -> _uiState.value = [Link]([Link]) }
.collect { items -> _uiState.value = [Link](items) }
}
}

// Parallel API calls


fun loadHomeData() = [Link] {
supervisorScope {
val banners = async([Link]) { [Link]() }
val featured = async([Link]) { [Link]() }
val deals = async([Link]) { [Link]() }
// Await all — any failure is isolated by supervisorScope
_homeState.value = [Link]([Link](), [Link](), [Link]())
}
}
}

9.1 Dispatcher Strategy


Dispatcher Use Case Thread Pool

[Link] UI updates, collect StateFlow in composables Android Main Thread

[Link] Network, database, file I/O 64+ thread pool

[Link] CPU-intensive: parsing, sorting, mapping CPU core count

[Link] Unit tests, special sequential tasks Caller thread

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 18


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

10. Room Database & Offline-First Architecture


@Database(
entities = [ProductEntity::class, CartItemEntity::class, OrderEntity::class,
UserEntity::class, WishlistEntity::class],
version = 12,
exportSchema = true
)
@TypeConverters(Converters::class)
abstract class AmazonDatabase : RoomDatabase() {
abstract fun productDao(): ProductDao
abstract fun cartDao(): CartDao
abstract fun orderDao(): OrderDao
companion object {
val MIGRATION_11_12 = migration(11, 12) {
[Link]("ALTER TABLE products ADD COLUMN badge TEXT DEFAULT NULL")
}
}
}

@Dao
interface ProductDao {
@Query("SELECT * FROM products WHERE category_id = :catId ORDER BY rating DESC")
fun getByCategory(catId: String): Flow>

@Upsert
suspend fun upsertAll(products: List)

@Query("DELETE FROM products WHERE updated_at < :expiry")


suspend fun evictStale(expiry: Long)
}

10.1 Offline-First Cache Strategy


• Stale-While-Revalidate: Serve cached data immediately, refresh in background
• TTL-based eviction: Products cached for 30 min, cart synced on every change
• WorkManager sync: Background sync every 15 min when on WiFi
• Conflict resolution: Server-wins strategy with last-write-time comparison
• Paging 3: RemoteMediator loads pages from API and caches in Room

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 19


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

11. Real-Time Features & Event Streaming

11.1 WebSocket — Live Order Tracking


// Ktor WebSocket client
class OrderTrackingRepository(private val client: HttpClient) {
fun trackOrder(orderId: String): Flow = flow {
[Link]("/ws/orders/$orderId") {
for (frame in incoming) {
if (frame is [Link]) {
val update = [Link]([Link]())
emit(update)
}
}
}
}.retryWhen { cause, attempt -> attempt < 5 && cause is IOException }
}

11.2 Kafka Event Architecture


Topic Producer Consumer(s) Retention

[Link] Order Service Payment Svc, Notification Svc, Inventory Svc 7 days

[Link] Payment Service Order Svc, Notification Svc, Analytics 7 days

[Link] Inventory Service Product Svc, Search Svc, Analytics 3 days

[Link] All services Notification Service 1 day

[Link] API Gateway Analytics, Recommendation Svc 30 days

[Link] Search Service Analytics, Recommendation Svc 30 days

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 20


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

12. AI Integration & Recommendation Engine


The AI layer combines on-device ML (TensorFlow Lite) for instant personalization and cloud-based LLM APIs
(OpenAI/Groq) for advanced search understanding and conversational support. A vector database (Pinecone) stores
product embeddings for semantic similarity search.

12.1 Recommendation Pipeline


// Recommendation flow
User Action → Kafka ([Link]) → Feature Pipeline → Model Training
↓ ↓
Embedding Generation ← Product Catalog → Pinecone Vector DB

ANN Search (Approximate Nearest Neighbors) → Top-K Products → API Response

// On-device: TFLite for immediate suggestions


val interpreter = Interpreter(loadModelFile("recommendations_v3.tflite"))
val userEmbedding = FloatArray(128) /* ... from user history ... */
val outputs = Array(1) { FloatArray(50) } // Top-50 product scores
[Link](userEmbedding, outputs)

12.2 AI Feature Matrix


Feature Technology Latency Target

Product Recommendations Pinecone ANN + Collaborative filtering < 50 ms

Semantic Search OpenAI text-embedding-3-small + ES < 200 ms

AI Chat Support Groq Llama 3 / GPT-4o mini < 1 s TTFT

Sentiment Analysis Custom BERT model (reviews) < 80 ms

Dynamic Pricing XGBoost / price elasticity model < 10 ms

On-device Personalization TFLite MobileNet-based model < 5 ms

Voice Search NLU Android SpeechRecognizer + OpenAI Whisper <2s

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 21


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

13. Cloud Infrastructure (AWS)

Route 53
DNS

CloudFront
CDN

ALB

EKS ECS
Lambda
Cluster Fargate

RDS ElastiCache S3 MSK


Postgres Redis Storage Kafka

Figure 3 — AWS Cloud Infrastructure

13.1 AWS Services Usage


AWS Service Purpose Configuration

EKS (Kubernetes) Container orchestration for microservices Multi-AZ, managed node groups

ECS Fargate Serverless containers for batch jobs Spot capacity, auto-scaling

Lambda Event-driven functions (image resize, SNS) 2048 MB, 15 min timeout

RDS PostgreSQL Primary relational database Multi-AZ, r6g.2xlarge, 2 read replicas

ElastiCache Redis Distributed cache, sessions Cluster mode, 3 shards, 2 replicas

S3 Product images, static assets, backups Versioning on, intelligent tiering

CloudFront Global CDN for assets and API caching 150+ PoPs, signed URLs

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 22


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

AWS Service Purpose Configuration

API Gateway REST API management, WAF Regional endpoints, throttling

MSK (Kafka) Managed Kafka for event streaming 3 broker, Multi-AZ

Route 53 DNS, health checks, failover Latency-based routing, geolocation

OpenSearch Managed Elasticsearch for search 3 master + 6 data nodes

SES / SNS Email and push notification delivery Dedicated IPs, high deliverability

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 23


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

14. DevOps & CI/CD Pipelines

Code Push GitHub Actions Unit Tests Build APK/AAB Docker Build K8s Deploy Canary Release Production

Figure 4 — CI/CD Pipeline Flow

14.1 GitHub Actions Workflow


# .github/workflows/[Link]
name: Android CI/CD
on:
push:
branches: [main, develop]
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with: { java-version: '17', distribution: 'temurin' }
- name: Run unit tests
run: ./gradlew test --parallel
- name: Lint check
run: ./gradlew lint detekt
- name: Upload test results
uses: actions/upload-artifact@v4

build:
needs: test
runs-on: ubuntu-latest
steps:
- name: Build release AAB
run: ./gradlew :app:bundleRelease

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 24


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

- name: Sign AAB


uses: r0adkll/sign-android-release@v1
- name: Deploy to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1

14.2 Deployment Strategies


Strategy Use Case Rollback Time Risk

Blue-Green Zero-downtime full deployments < 1 min Low

Canary Release Gradual rollout to 5% → 25% → 100% < 2 min Very Low

Rolling Update Standard K8s deployment < 5 min Medium

Feature Flags Code deployed, feature toggled remotely Instant Very Low

A/B Testing UI variant experiments Instant Very Low

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 25


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

15. Security Architecture


Client (Android App)

SSL Pinning · Encrypted SharedPrefs · ProGuard · Biometric Auth

Transport Layer

TLS 1.3 · HTTPS · Certificate Validation · HSTS

API Gateway / WAF

Rate Limiting · DDoS Protection · IP Filtering · OWASP Rules

Backend Services

JWT Validation · OAuth2 · RBAC · Input Sanitization · Audit Logs

Figure 5 — Security Layers

15.1 Authentication & Authorization Flow


// JWT structure
Header: { alg: RS256, typ: JWT }
Payload: { sub: userId, roles: ['BUYER'], exp: +3600, iss: 'amazon-auth-svc' }
Signature: RS256(base64(header) + '.' + base64(payload), privateKey)

// Refresh token rotation


Access Token: 15 minutes (short-lived)
Refresh Token: 30 days (rotated on use, stored encrypted in EncryptedSharedPreferences)

// Android SSL Pinning


val certPinner = [Link]()
.add("[Link]", "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=")
.build()

15.2 Security Checklist


• OAuth 2.0 + PKCE for mobile authorization flows
• RS256 JWT with short expiry (15 min) and secure refresh rotation
• SSL/TLS pinning to prevent MITM attacks on Android
• Encrypted SharedPreferences (AES-256-GCM) for sensitive local storage

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 26


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

• Android Keystore for cryptographic key storage (hardware-backed on API 28+)


• Biometric authentication (fingerprint/face) via BiometricPrompt API
• ProGuard/R8 with aggressive obfuscation in release builds
• WAF rules for OWASP Top 10 at API Gateway layer
• Rate limiting: 100 req/min per user, 10 req/min for auth endpoints
• SQL injection prevention via parameterized queries and ORM
• CSRF tokens for state-changing web API operations
• DDoS protection via AWS Shield Advanced + CloudFront
• Secrets management via AWS Secrets Manager (never in source code)
• PCI DSS compliance for payment data — no card data stored locally

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 27


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

16. Scalability & Performance Strategy

16.1 Scaling Architecture


Horizontal Scaling:
Stateless microservices → Kubernetes HPA (CPU/RPS-based)
Target: 2-10x scale in < 90 seconds based on traffic

Database Scaling:
PostgreSQL: 1 primary + 2 read replicas per service
Redis Cluster: 3 shards x 2 replicas = 6 nodes
Elasticsearch: 3 master + 6 data + 3 coordinator nodes

Caching Layers:
L1: In-process cache (Caffeine) — 100 ms TTL, hot data
L2: Redis — 5 min TTL, shared across instances
L3: CloudFront CDN — 24h TTL, static/semi-static

Queue Buffering:
Kafka: absorbs traffic spikes, decouples producers/consumers
SQS: dead-letter queues for failed notification delivery

16.2 Android Performance Targets


Metric Target Measurement Tool

Cold Start Time < 1.2 seconds Macrobenchmark + Perfetto

Warm Start Time < 300 ms Macrobenchmark

60 fps sustained (120 fps on capable


Frame Rate Android Profiler
devices)

Memory Usage (idle) < 150 MB RSS Memory Profiler

APK Size < 35 MB (AAB base) Build Analyzer

Network Request (p50) < 120 ms OkHttp EventListener

List scroll jank 0 janky frames per 1000 Jank Tracker

Baseline Profile Compiled at first launch ProfileInstaller

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 28


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

17. Monitoring & Observability

17.1 Observability Stack


Tool Layer Purpose

Prometheus Backend Metrics collection — JVM, HTTP, DB, Kafka

Grafana Backend Dashboards, alerting, on-call integration

Loki + Promtail Backend Log aggregation from K8s pods

Jaeger / Tempo Backend Distributed tracing (OpenTelemetry)

ELK Stack Backend Application log search and analysis

Firebase Crashlytics Android Crash reporting, ANR tracking

Firebase Performance Android Network traces, screen render times

Datadog APM Full-stack End-to-end APM, synthetic monitors

PagerDuty Alerting On-call rotation, incident escalation

17.2 Key Dashboards & Alerts


• API Error Rate > 1% → PagerDuty P1 alert
• p99 latency > 2s for any service → Slack warning
• Kafka consumer lag > 10,000 messages → auto-scale consumer group
• Database connection pool > 80% → alert + auto-create read replica
• Android crash-free rate < 99.5% → block release in CI
• Memory heap > 85% on any pod → preemptive pod restart

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 29


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

18. Testing Strategy & QA

18.1 Testing Pyramid


■■■■■■■■■■■■
■ E2E / ■ (5%) — Maestro, Espresso
■ UI Tests■
■■■■■■■■■■■■■■■■
■ Integration ■ (20%) — Ktor Test, MockK
■ Tests ■
■■■■■■■■■■■■■■■■■■■■
■ Unit Tests ■ (75%) — JUnit5, MockK, Turbine
■■■■■■■■■■■■■■■■■■■■

Test Type Framework Coverage Target CI Stage

Unit Tests JUnit 5 + MockK + Turbine 80% line coverage PR check

Integration Tests Ktor Test + TestContainers All API endpoints PR merge

Compose UI Tests Compose Testing + Espresso Critical flows Nightly

API Contract Tests Pact / Spring Cloud Contract All service APIs PR merge

Performance Tests Gatling / k6 500k req/min Weekly

E2E Tests Maestro / Appium 20 core journeys Pre-release

Security Tests OWASP ZAP + Snyk Zero high vulns Weekly

// Turbine Flow test example


@Test
fun `loadProducts emits loading then success`() = runTest {
val repo = FakeProductRepository(stubProducts)
val vm = ProductListViewModel(GetProductsUseCase(repo))
[Link] {
assertIs(awaitItem())
[Link]("electronics")
assertIs(awaitItem())
cancelAndConsumeRemainingEvents()
}
}

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 30


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

19. Analytics Architecture

19.1 Event Taxonomy


// Standard event structure
data class AnalyticsEvent(
val name: String, // e.g. 'product_viewed'
val userId: String,
val sessionId: String,
val timestamp: Long,
val properties: Map // product_id, price, category, etc.
)

// Key events tracked


app_open, product_viewed, product_added_to_cart, checkout_started,
purchase_completed, search_performed, notification_opened,
screen_viewed, error_occurred, session_ended

Platform Purpose Integration

Firebase Analytics App events, funnels, audiences Auto-collected + custom events

Mixpanel Product analytics, retention People API + event tracking

Amplitude Behavioral analytics, cohorts SDK + server-side events

ClickHouse Raw event warehouse, SQL queries Kafka consumer pipeline

Looker / QuickSight Business intelligence dashboards ClickHouse JDBC connector

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 31


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

20. Multi-Platform Strategy

Native Android
Criterion KMP (Kotlin Multiplatform) Flutter React Native
(Kotlin)

Perf. ★★★★★ ★★★★■ ★★★★■ ★★★■■

Code share Android only Business logic, network, DB Full stack Full stack

UI reuse None Compose Multiplatform Yes Yes

Ecosystem Largest Android Growing rapidly Large Very large

Hiring Easy Moderate Moderate Easy

Recommende
Amazon Android New cross-platform projects B2C apps Web + mobile
d for

■ Amazon's recommendation: Maintain a dedicated Native Android app for best UX and Google Play integration. Use
KMP modules for sharing domain logic and networking with a future iOS app, eliminating code duplication without
sacrificing Android-specific optimizations.

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 32


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

21. Architecture Diagrams Reference

21.1 High-Level System Architecture


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ CLIENT LAYER ■
■ [Android App] [iOS App] [Web App] [Seller Portal] ■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ HTTPS / WSS
■■■■■■■■■■■■■■■■■■■■■■■■■■▼■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ API GATEWAY (Kong + AWS API GW) ■
■ Auth · Rate Limit · WAF · Load Balance · SSL ■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ ■ ■ ■ ■ ■ ■
[User] [Prod] [Order][Pay] [Search][Notif][Seller]
Svc Svc Svc Svc Svc Svc Svc
■ ■ ■ ■ ■ ■ ■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Apache Kafka Event Bus
■ ■ ■
[Postgres] [MongoDB] [Redis]
[Elastic] [S3] [Pinecone]

21.2 Authentication Sequence


User → App: Enter credentials
App → Auth Svc: POST /auth/login { email, password_hash }
Auth Svc → DB: Verify credentials, check MFA
Auth Svc → App: { access_token, refresh_token, user_profile }
App → Keystore: Encrypt & store refresh_token
App → API: GET /products { Authorization: Bearer }
API GW → Auth Svc: Validate JWT signature & expiry
Auth Svc → API GW: { valid: true, userId, roles }
API → App: 200 OK { products[] }

Token Refresh (15 min):


App → Auth Svc: POST /auth/refresh { refresh_token }
Auth Svc → App: { new_access_token, rotated_refresh_token }

21.3 Payment Processing Flow


User: Tap 'Place Order'
App: Collect card via Stripe SDK (PCI-safe)
App → Stripe: Create PaymentIntent (client-side)
App → Order Svc: POST /checkout { payment_intent_id, cart, address }
Order Svc → Inventory: Reserve stock (gRPC)
Order Svc → Payment Svc: Confirm payment (gRPC)
Payment Svc → Stripe: Capture PaymentIntent

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 33


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

Stripe → Payment Svc: Webhook: payment_intent.succeeded


Payment Svc → Kafka: Emit [Link]
Kafka → Order Svc: Update order status → CONFIRMED
Kafka → Notification Svc: Send push notification
Kafka → Inventory Svc: Deduct stock permanently
App ← Push Notification: 'Your order is confirmed!'

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 34


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

22. Technology Comparison Tables

22.1 REST vs GraphQL vs gRPC


Criterion REST GraphQL gRPC

Protocol HTTP/1.1+2 HTTP/1.1+2 HTTP/2

Format JSON JSON Protocol Buffers

Over-fetching Common None — client-defined None

Caching Native HTTP Requires custom Not built-in

Type safety OpenAPI Schema Protobuf — strongest

Mobile fit Excellent Good Best for internal

Amazon usage External APIs Feeds, search Service-to-service

22.2 CI/CD Tools Comparison


Tool Type Strength Amazon Usage

GitHub Actions Cloud CI Tight VCS integration, marketplace Primary CI pipeline

Jenkins Self-hosted Highly customizable, plugins Legacy, migrating out

ArgoCD GitOps CD K8s-native, declarative Production deployment

Helm K8s pkg mgr Templated K8s manifests All K8s releases

Terraform IaC Multi-cloud, state management AWS infrastructure

Docker Containers Build once, run anywhere All service images

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 35


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

23. Performance Metrics & SLAs

23.1 System Performance Targets


Metric Target Current Baseline Alert Threshold

API throughput 500,000 req/min 380,000 req/min > 450,000 req/min

API latency p50 < 120 ms 85 ms > 150 ms

API latency p99 < 500 ms 320 ms > 700 ms

Database query p95 < 50 ms 28 ms > 100 ms

Redis cache hit ratio > 92% 94.8% < 88%

Kafka consumer lag < 1,000 msgs < 100 msgs > 5,000 msgs

Android cold start < 1.2 s 950 ms > 1.5 s

Android crash-free rate > 99.8% 99.92% < 99.5%

Search latency < 200 ms 145 ms > 300 ms

Push delivery rate > 98% 98.7% < 95%

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 36


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

24. Advanced Topics

24.1 Event Sourcing & CQRS


Event Sourcing is applied in the Order and Inventory services. Instead of storing current state, every state change is
recorded as an immutable event. The current state is derived by replaying events. This provides a complete audit log,
enables time-travel debugging, and simplifies integration with Kafka.
// Event store entry
OrderCreated(orderId, userId, items, timestamp)
PaymentConfirmed(orderId, paymentId, amount, timestamp)
ItemShipped(orderId, trackingNo, carrier, timestamp)
ItemDelivered(orderId, deliveredAt, signature, timestamp)

// CQRS split
Write side (Command): OrderService handles PlaceOrderCommand
Read side (Query): OrderQueryService reads from denormalized read model
Sync: Kafka consumer updates read model on every event

24.2 Feature Flags & A/B Testing


// Firebase Remote Config based feature flags
val flags = [Link]()
val isNewCheckoutEnabled = [Link]("new_checkout_v2")
val checkoutVariant = [Link]("checkout_ab_variant") // 'A' | 'B'

// Usage in Compose
if ([Link](FeatureFlag.NEW_CHECKOUT_V2)) {
NewCheckoutScreen(viewModel)
} else {
LegacyCheckoutScreen(viewModel)
}

24.3 Distributed Tracing


OpenTelemetry spans are propagated across all microservices via HTTP headers (traceparent). Each service creates
child spans for DB queries, Kafka publish, and external API calls. Traces are collected in Jaeger/Tempo for root-cause
analysis.

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 37


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

25. UI/UX Architecture

25.1 Adaptive Layouts


• Compact (< 600dp): Single-pane phone layout — BottomNavBar navigation
• Medium (600-840dp): Tablet portrait — NavigationRail + expanded content
• Expanded (> 840dp): Tablet landscape — NavigationDrawer + two-pane layout
• WindowSizeClass API: Jetpack adaptive layout detection at runtime

25.2 Accessibility
• TalkBack support via contentDescription on all interactive elements
• Minimum touch target: 48x48dp (Material Design requirement)
• Dynamic font size support (sp units throughout, up to 200% scale)
• Color contrast ratio ≥ 4.5:1 for body text (WCAG AA)
• Semantic roles for custom components ([Link], [Link])
• Reduced motion mode for users with vestibular disorders

25.3 Skeleton Loading Pattern


@Composable
fun ShimmerEffect(modifier: Modifier = Modifier) {
val shimmerColors = listOf(
[Link](alpha = 0.6f),
[Link](alpha = 0.2f),
[Link](alpha = 0.6f)
)
val transition = rememberInfiniteTransition()
val translateAnim by [Link](
initialValue = 0f, targetValue = 1000f,
animationSpec = infiniteRepeatable(animation = tween(1200))
)
Box(modifier = [Link](
[Link](shimmerColors,
start = Offset(translateAnim - 200, 0f),
end = Offset(translateAnim, 0f)
)
))
}

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 38


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

26. Deployment Strategy

Stage Environment Trigger Approval Health Check

Every commit to feature


Dev [Link] Automatic Unit + Lint pass
branch

Staging [Link] Merge to develop Automatic Integration tests pass

UAT [Link] Release branch created QA Team E2E test suite pass

Canary 5% of production Manual approval Eng Lead Error rate < 0.1%

Production 100% traffic Canary success for 24h SRE Team All SLOs met

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 39


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

27. Cost Optimization

27.1 AWS Cost Reduction Strategies


Spot Instances: Use EC2 Spot for batch jobs, ML training — up to 90% savings

Reserved Instances: 1-year reserved for stable workloads (RDS, ElastiCache) — 40% savings

Intelligent Tiering S3: Automatically moves infrequently accessed objects to cheaper tiers

Lambda for sporadic tasks: Use Serverless for image resizing, email delivery — no idle cost

CloudFront caching: Cache API responses at edge — reduce origin load by 70%

Autoscaling: Scale down to minimum during off-peak hours (2-6 AM UTC)

Graviton3 instances: ARM-based AWS instances — 40% better price/performance for Kotlin JVM

RDS Proxy: Connection pooling reduces DB connections by 80%, enabling smaller instances

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 40


Amazon Mobile App — Enterprise System Design 2026 CONFIDENTIAL • INTERNAL USE

28. Future Improvements & Roadmap

28.1 2026 Q3-Q4 Roadmap


Initiative Quarter Impact Status

Compose Multiplatform → iOS app Q3 2026 High In Progress

Edge computing for search (CloudFront


Q3 2026 High Planned
Functions)

On-device LLM (Gemini Nano) for chat Q3 2026 Medium PoC

WebAssembly Kotlin modules for web Q4 2026 Medium Research

Real-time collaborative cart (CRDT) Q4 2026 High Planned

AR product preview (ARCore) Q4 2026 Medium PoC

Serverless Aurora for per-tenant DB Q4 2026 High Planned

AI-generated product descriptions Q3 2026 Medium Testing

28.2 Executive Summary


■ This system design document presents a production-ready, enterprise-grade architecture for an Amazon-scale
e-commerce platform built with modern Android (Kotlin, Jetpack Compose, Clean Architecture) and a cloud-native
backend (microservices, Kafka, Kubernetes on AWS). The architecture is designed for 10M+ concurrent users with
99.99% availability, sub-120ms API latency, and a development workflow that enables multiple daily deployments with
zero-downtime. The total estimated infrastructure cost at 1M MAU is ~$85,000/month, scaling linearly to
~$420,000/month at 10M MAU due to extensive use of auto-scaling and Spot capacity.

Amazon Mobile App System Design 2026 — Enterprise Architecture Document


Version 3.2.1 | Prepared by Architecture & Platform Engineering
© 2026 Amazon Technologies | Confidential — Internal Use Only

© 2026 Amazon Technologies. Enterprise Architecture Document. Page 41

You might also like