Architecture Visual

Complete production architecture for FIFA Neon Soccer, covering frontend delivery, identity, gameplay APIs, compute logic, and real-time score persistence.

Delivery and Frontend

BrowserPlayer BrowserLoads neon game UI and client logic
→
Amazon CloudFrontCloudFront CDNGlobal delivery at app.joesparkman.com/fifa
→
Amazon S3S3 Static Hostingindex, app.js, style, audio assets

Auth and API Routing

Amazon CognitoAmazon CognitoHosted UI + PKCE + access tokens
→
Amazon API GatewayAPI Gateway HTTP APIleaderboard, profile, telemetry routes
→
AWS LambdaLambda (Node/Python)route validation and score handlers

Gameplay Data and Persistence

Game ControllerGame Telemetry Eventsmatch events and timing snapshots
↔
AWS LambdaLambda Runtimescore calculation and write orchestration
→
Amazon DynamoDBDynamoDB Tablesplayer profiles, scores, telemetry

Infrastructure as Code

TerraformTerraformProvisions all AWS resources from HCL config
→
Amazon S3S3 Remote Statefifa-neon-tfstate bucket stores tfstate
→
GitHub ActionsGitHub Actions CI/CDterraform plan on PR · apply on push to main

Protected endpoints use Cognito JWT bearer tokens. CloudFront + S3 handle static delivery while API Gateway + Lambda process gameplay requests and persist leaderboard state. All infrastructure is provisioned and versioned via Terraform with automated CI/CD.

Hosting layer: CloudFront serves the game globally while S3 stores static frontend files and media assets.
Auth layer: Cognito handles sign-in and token issuance for secured player actions and account-specific views.
Compute layer: API Gateway forwards requests to Lambda for game data validation and score updates.
Data layer: DynamoDB stores leaderboard entries and player-linked telemetry records.
Security posture: Tokens and IAM controls protect write operations and keep privileged logic server-side.
Scalability: Serverless components scale with traffic spikes during gameplay and events.
IaC layer: Terraform manages all AWS resources with remote state in S3 and automated deploys via GitHub Actions.
Read Build Story Back to App Back to Portfolio