Practice
Practise AWS solution architecture on a canvas
Read a scenario, build the design, submit. You get a percentage against what the scenario actually requires, and a written review of what you built — what is accurate, what is wasteful, what is missing, and why in each case.
- Free to tryServerless webfoundational
Photo Sharing App, Global Launch
A two-person team is launching a photo sharing app worldwide next month. The front end is a static single-page application; there is no server-rendered HTML. Photos are uploaded by signed-in users, stored as original files, and served to viewers in Tokyo, London and São Paulo with as little latency as possible. Photo metadata — owner, caption, timestamp, tag list — is only ever read by a single key lookup or a query on the owner, never joined across tables, and read volume is expected to be a hundred times write volume. Users sign up with an email address and password. The team has no operations engineer and will not accept anything they have to patch or capacity-plan.
+1Multiple choiceFill the gapsBuild from scratch - Free to tryReal-time applicationsassociate
Live Collectibles Auction Platform
An online auction house runs live bidding events for collectible items. During an event each bidder's browser must hold an open two-way connection so that price changes are pushed out to every participant the moment they happen, without any client polling. The team wants nothing to size or patch, per-request billing, and a handler that runs only for the length of each message while scaling from dozens of participants to tens of thousands in seconds. Bidders sign in with an email address and password before joining, and every accepted bid is written to a durable relational store kept for seven years of regulatory audit. The current high bid and the ranking of bids per lot must be held in memory, updated with atomic counters and sorted structures, and published to subscribed handlers.
Multiple choiceFill the gapsBuild from scratch - Media processingassociate
Educational Video Platform
A startup launches a platform where users upload educational videos. A single uploaded video may need to be converted into 1080p, 720p, 480p and mobile-optimised formats. Encoding is CPU-intensive and can take several minutes, and thousands of videos may be uploaded at the same time. The company does not want to maintain dedicated encoding servers. A failed encoding job should be retried automatically, and one failed video must not block the others. Once processed, users should be able to stream the videos globally.
Multiple choiceFill the gapsBuild from scratch - Concurrency at scaleassociate
Clinic Appointment Booking
A healthcare company operates thousands of clinics, and patients book appointments through a mobile application. The system has a hard concurrency problem: two patients may try to book the final available slot at exactly the same moment, and only one booking can succeed. Traffic is ordinary for most of the day but becomes extreme when appointments for popular doctors are released. The company wants a serverless architecture and does not want to manage database servers. Appointment data must remain durable and the system should scale automatically.
Multiple choiceFill the gapsBuild from scratch - Concurrency at scaleprofessional
Flash-Sale Ticket Booking
A concert-ticket platform releases 50,000 tickets at exactly 10:00 AM. Within seconds, hundreds of thousands of users attempt to purchase tickets simultaneously. The application must prevent two customers from purchasing the same seat. Checkout can take several seconds because payment authorization is performed by an external provider, and the company does not want to maintain a fleet of always-running application servers. If payment succeeds the reservation is confirmed; if payment fails or the customer abandons checkout, the seat should automatically become available again after 10 minutes. The architecture has to absorb sudden traffic spikes, prevent duplicate reservations, and avoid keeping a database connection open for every waiting customer.
Multiple choiceFill the gapsBuild from scratch - Resilience and DRprofessional
Disaster Recovery for a Critical SaaS
A SaaS company runs its production application in a single AWS Region. The system holds customer accounts, orders, payments, application configuration and uploaded documents. If that Region fails completely the business can tolerate roughly 15 minutes of data loss and 30 minutes of downtime. The company wants a disaster-recovery approach that is significantly cheaper than running a full duplicate production environment. Backups must be automated, encrypted and regularly tested, and the architecture should let the company bring the application up in another Region when it needs to.
+1Multiple choiceFill the gapsBuild from scratch - Event-driven processingassociate
Global RAW Image Processing
A photography company lets professional photographers upload RAW images ranging from 50 MB to 2 GB, from anywhere in the world. After upload several operations must occur: generate thumbnails, extract metadata, create preview images, run AI-based image classification, and store the original permanently. Processing may take several minutes and does not need to happen immediately. The company expects millions of uploads per month, and a marketing campaign could increase uploads twentyfold for a few hours. The upload path must remain available even when the processing workers are completely overwhelmed.
Multiple choiceFill the gapsBuild from scratch - Orchestrationprofessional
Enterprise Order Workflow
A large enterprise runs an order-processing platform. An order moves through seven stages: created, validate customer, check inventory, reserve inventory, charge payment, create shipment, send confirmation. Each stage may involve a different microservice and some operations take minutes. If payment fails after inventory has been reserved, the system must release that inventory. If the shipment service is temporarily unavailable, the workflow should wait and retry rather than failing the whole order. The company wants visibility into the state of every order and does not want developers implementing complex workflow state management themselves.
Multiple choiceFill the gapsBuild from scratch - Decoupling and scaleassociate
Flash Sale Order Intake
A retailer runs a two-hour flash sale that drives roughly forty times normal checkout traffic. The fulfilment database behind checkout is relational and can absorb only a steady, modest rate of writes; it must never be the reason a customer's order is rejected, so the checkout endpoint has to accept an order and return success even while fulfilment is behind. Orders must survive a fulfilment outage without being lost, and the orders belonging to one customer must be processed in the sequence they were accepted. Once an order is committed, the customer is sent an email confirmation. Checkout is an ordinary HTTPS request from the storefront and the team does not want to run or scale servers for the spike.
Multiple choiceFill the gapsBuild from scratch - Streaming and IoTprofessional
Refrigerated Fleet Telemetry
A logistics company operates 3 million refrigerated trucks, and each truck sends temperature and GPS information every 10 seconds. The platform must receive millions of messages, cope with devices connecting and disconnecting constantly, process telemetry in near real time, raise an alert whenever a temperature crosses a threshold, keep the history for analytics, and drive a dashboard showing the current status of every truck. The fleet is expected to reach 10 million devices, and the company does not want to operate persistent servers responsible for maintaining device connections.
+2Multiple choiceFill the gapsBuild from scratch - Global deliveryassociate
Global E-Commerce Catalogue
An e-commerce company operates in India, Europe, North America and Australia. Its product catalogue changes relatively infrequently, but millions of users browse products every hour. The company wants low latency globally, protection against traffic spikes, high availability, pricing that varies by user and location, personalised recommendations, and as little load on the database as possible. Product images and static assets should not need to travel back to the origin on every request. The application already runs as containerised services.
+1Multiple choiceFill the gapsBuild from scratch - Real-time applicationsprofessional
Real-Time Collaborative Whiteboard
A company is building an online collaborative whiteboard where thousands of users can work on the same board at once. When one user moves an object, every other connected user must receive that change immediately. The platform needs persistent two-way connections, real-time updates, millions of connection events, automatic scaling, no server fleet to manage, and authentication before anyone joins a board. Board state has to be stored durably, while the collaboration state that is read and written constantly should be extremely fast.
Multiple choiceFill the gapsBuild from scratch - Consistency and transactionsassociate
Banking Transaction Processing
A financial application processes millions of account transactions every day. A single transaction moves money from one account to another, and the system must guarantee that money is never lost or duplicated. Multiple requests may attempt to update the same account at the same time, and a transfer must either completely succeed or completely fail. The business requires strong consistency, ACID transactions, point-in-time recovery, availability across more than one Availability Zone, and seven years of transaction history. Read traffic is significantly higher than write traffic.
Multiple choiceFill the gapsBuild from scratch - Migrationassociate
Moving a MongoDB CMS
A publishing company runs its content management system as Docker containers on its own servers, backed by a self-managed MongoDB replica set that the team patches and backs up by hand. The company is moving to AWS and wants to stop managing both the servers and the database, without rewriting the application: it uses the MongoDB driver and query language throughout. Editors' traffic is steady through the working day, the CMS must keep running if one Availability Zone fails, and requests need a single HTTPS entry point that spreads them over the running containers and checks their health.
Multiple choiceFill the gapsBuild from scratch - Analytics and dataassociate
Application Log Analytics
A software company runs about two hundred microservices that together produce several terabytes of JSON application logs a day. Engineers want to search last month's logs with plain SQL when they investigate an incident, perhaps a few dozen queries a week, without keeping a database cluster running around the clock for such occasional use. Logs must be kept for one year at the lowest possible storage cost and should arrive from the services within a few minutes. The team does not want to write or run code that batches and uploads files, and queries should only pay for the data they actually scan.
Multiple choiceFill the gapsBuild from scratch - Networking and hybridprofessional
Bank Hybrid Network
A regional bank is moving workloads into twelve VPCs, one per business unit, while its core banking system stays in the bank's own data centre. Applications in every VPC must reach the core system over a private connection with consistent, predictable latency and bandwidth for nightly settlement files, never over the public internet. The network team wants to manage routing between all twelve VPCs and the data centre in one place rather than maintain a mesh of pairwise peering links, and servers on both sides must be able to find each other by the bank's internal DNS names. The design has to keep working as more VPCs are added.
Multiple choiceFill the gapsBuild from scratch - Global deliveryprofessional
Multiplayer Game Servers
A studio is launching an online shooter whose matches run on dedicated game servers that hold each match's state in memory. Players connect over UDP, and the game client ships with a fixed list of IP addresses that cannot change after release, because updating the client in every app store takes weeks. Players in Asia, Europe and the Americas should reach the nearest healthy Region over the fastest network path rather than the public internet, and if a Region fails its players must be moved to another one within seconds, without waiting for DNS caches to expire. The number of game servers in each Region must grow and shrink with the evening peak.
Multiple choiceFill the gapsBuild from scratch - Web hostingassociate
Newspaper on WordPress
A regional newspaper runs its website on WordPress, with themes and plugins it cannot rewrite. Traffic doubles whenever a big story breaks, so the site has to run on several web servers that are added and removed automatically, spread across two Availability Zones so that losing one does not take the paper offline. Editors upload photos through WordPress, and every web server must see the same uploads and plugin files the moment they are saved, because WordPress writes them to a local folder. The MySQL database should fail over automatically without anyone restoring a backup, and article pages and images should be cached close to readers.
Multiple choiceFill the gapsBuild from scratch - Decoupling and scaleassociate
Order Events for Five Teams
When an online shop confirms an order, five separate teams need to act on it: warehouse picking, invoicing, the loyalty points service, fraud analytics and customer emails. Today the order service calls each of them directly, so one team's outage makes checkout slow or fail. The shop wants the order service to announce each confirmed order exactly once and carry on, with every team receiving its own copy. A team that is down for maintenance must find its orders waiting when it comes back rather than lose them, a slow team must not hold up the others, and adding a sixth team later should not require changing the order service.
Multiple choiceFill the gapsBuild from scratch - Security and complianceprofessional
Organisation-wide Audit Trail
A fintech company with forty AWS accounts must prove to regulators who did what, in every account and Region, for the last seven years. Every API call must be recorded centrally, including in accounts created in future, and the records must be impossible to alter or delete for the retention period, even by an administrator of the logging account. The security team also wants automatic detection of threats such as credentials being used from unusual locations or instances talking to known malicious addresses, and a message to the on-call engineer within minutes of a high-severity finding.
Multiple choiceFill the gapsBuild from scratch - Migrationprofessional
Payments Kafka Migration
A payments company runs a self-managed Apache Kafka cluster in its data centre, carrying card-authorisation events between thirty microservices. Every service uses Kafka client libraries and relies on Kafka features such as consumer groups, partitions keyed by card number and replaying a topic from an offset. The company is moving to AWS and wants to stop patching brokers and managing ZooKeeper, without changing any producer or consumer code. The consuming services run as containers, and every event must also be archived to cheap storage for seven years of dispute handling, without writing custom archiving code.
Multiple choiceFill the gapsBuild from scratch - Security and complianceassociate
Payroll Database Credentials
A payroll service runs as containers on ECS with Fargate and connects to a PostgreSQL database on RDS. An audit found the database password written in plain text in the task definition and shared by every developer. The auditors now require that no credential appears in code, configuration or environment files, that the database password changes automatically every thirty days without an outage or a redeploy, and that only the payroll tasks themselves, not every workload in the account, can read it. Access must be granted to the service rather than to people, and the secret must be encrypted with a key the security team manages.
Multiple choiceFill the gapsBuild from scratch - Security and complianceassociate
Private Clinical Records Processing
A hospital group runs a document-processing application on EC2 instances that turn scanned clinical letters into structured records. Its compliance policy says the instances must sit in private subnets with no inbound access from the internet, and patient documents read from and written to S3 must never cross the public internet, even encrypted. The instances still need to download operating-system patches from the internet each week. Every document must be encrypted at rest with a key the hospital controls and can revoke, and each use of that key must be auditable. The team also wants to avoid per-gigabyte internet processing charges on the heavy S3 traffic.
+1Multiple choiceFill the gapsBuild from scratch - Migrationassociate
Insurance Quote Engine on JMS
An insurer's quoting system is a set of Java applications that exchange messages through Apache ActiveMQ using JMS, with durable queues, topics and transactions built into the code. The insurer is moving these applications to AWS as they are, onto virtual machines, because rewriting them is years away. It wants to stop running the message broker itself, keep the JMS and OpenWire protocols the code already uses, and have the broker survive the loss of an Availability Zone automatically. Quotes and policies are kept in a relational database, which should also fail over across zones without anyone restoring a backup.
Multiple choiceFill the gapsBuild from scratch - Analytics and dataassociate
Supermarket Sales Reporting
A supermarket chain records every till transaction in a relational database that runs the stores during the day. Head office wants dashboards on sales by store, product and week, joining three years of history, and analysts' heavy queries have started to slow the tills down. Each night after the stores close, the day's transactions should be copied out, cleaned and loaded somewhere built for large analytical queries, so the store database only ever serves the stores. The load must start on its own every night at 1 a.m. with nobody running it, the data team does not want to maintain ETL servers, and managers should see the dashboards in a browser without installing anything.
Multiple choiceFill the gapsBuild from scratch - Containersfoundational
Yoga Studio Booking API
A three-person startup has written a booking API for yoga studios as a single container image that listens for HTTPS requests. They want to deploy it straight from their container registry and get a secure public URL, with the service scaling up during the morning booking rush and down to very little overnight, without learning to configure load balancers, clusters or servers. Bookings are stored in PostgreSQL, and the database should scale its capacity with demand rather than being sized in advance. The database password must not be baked into the image.
Multiple choiceFill the gapsBuild from scratch - Global deliveryassociate
Storefront A/B Testing at the Edge
An online fashion retailer serves its storefront, a single-page app, from S3 through CloudFront to shoppers worldwide. The design team wants to test a redesigned homepage on ten percent of visitors, and each visitor must keep seeing the same version on every visit so the results are not muddled. The decision about which version to serve has to be made before the request reaches the origin, without adding a round trip to a server in one Region, and it must not slow the site for anyone. Both versions stay cached at the edge, and marketing wants to change the split later without redeploying the website.
Multiple choiceFill the gapsBuild from scratch - Resilience and DRprofessional
Streaming Profiles in Two Regions
A video-streaming service keeps each member's profile, watch history and playback position, and must stay fully available to members in North America and Europe even if an entire AWS Region goes down. Both Regions must serve reads and writes at the same time rather than sitting as primary and standby, and a member who pauses a show on a phone in one Region should be able to resume it on a television served from the other within a second or two. The last write winning is acceptable for this data. Members should be sent to the Region with the lowest latency for them and moved away from an unhealthy Region automatically, and the team does not want to run database replication itself.
Multiple choiceFill the gapsBuild from scratch - Web hostingfoundational
Brand Launch Microsite
A drinks brand is launching a new product with a marketing microsite. The site is plain HTML, CSS, JavaScript and images, rebuilt by the agency whenever the copy changes, with no server-side code at all. Launch-day television adverts will send visitors from across Europe and Asia within minutes, so pages must load quickly far from any one Region and the site must not fall over under a sudden burst. It has to be served over HTTPS on the brand's own domain, and the marketing team wants the monthly bill to be close to nothing on quiet days. Nobody on the team manages servers.
Multiple choiceFill the gapsBuild from scratch - Security and complianceprofessional
Election Night News Site
A national broadcaster's news website expects its biggest night of the year on election night, with results pages refreshed by millions of readers. Last year a hostile group took the site down with a flood of network-level traffic and a wave of HTTP requests from botnets. This year the site must stay up under both kinds of attack, block any single address sending more than a set number of requests in five minutes, and have a specialist response team to call during an attack. Results pages change every thirty seconds and can be cached briefly at the edge, while the origin is a small fleet behind a load balancer that must never see the full flood. The broadcaster also wants protection against unexpected scaling bills caused by an attack.
Multiple choiceFill the gapsBuild from scratch - Real-time applicationsassociate
Field Engineer Team Chat
A company is building a chat app for its field engineers, who work in basements and remote sites with patchy mobile signal. Messages must appear on everyone's phone in a channel as soon as they are sent, and an engineer who has been offline for an hour must receive everything they missed when their signal returns. The mobile team wants a single GraphQL endpoint for fetching history, posting messages and subscribing to new ones, rather than building and scaling its own WebSocket servers. Only signed-in employees may join a channel, and every message must be stored durably and looked up by channel and time, with no database servers to manage.
Multiple choiceFill the gapsBuild from scratch - APIs and integrationassociate
Freight Rates Partner API
A freight company is opening its shipping-rates service to about three hundred partner companies. Each partner's software calls the API server-to-server, so partners must authenticate as machines using OAuth client credentials rather than as people. Every partner gets a daily quota and a request-rate limit according to its contract, and one misbehaving partner must never be able to overwhelm the service for the others. The security team insists that common web attacks such as SQL injection are blocked before requests reach the application. Rates are computed from a table of lanes and prices looked up by origin and destination, and traffic is spiky enough that nothing should need capacity planning.
Multiple choiceFill the gapsBuild from scratch - High-performance computingprofessional
Genome Sequencing Pipeline
A genomics lab's sequencers produce raw data files of several hundred gigabytes per sample, uploaded to S3 as each run finishes. Each sample goes through an alignment and variant-calling pipeline of containerised tools that need dozens of CPU cores and a lot of memory for several hours, with hundreds of samples queued at busy times. The tools read the same reference genome and intermediate files thousands of times, so they need a shared, very high-throughput file system rather than fetching from object storage over and over. Jobs should run on the cheapest spare capacity available and restart automatically if an instance is reclaimed, and the lab does not want to run a scheduler or cluster itself.
Multiple choiceFill the gapsBuild from scratch - Storage and archiveassociate
Ten-Year Medical Imaging Archive
A group of hospitals produces about 40 TB of X-ray and MRI images a month. Radiologists look at a scan often in its first month, rarely after that, and almost never after a year, but regulations require every image to be kept for ten years, unaltered, and retrievable within twelve hours when a court or a patient asks. Images must be encrypted at rest with keys the hospital group controls, and moving older images to cheaper storage must happen automatically rather than by someone running scripts. The overall storage bill must stay as low as possible.
Multiple choiceFill the gapsBuild from scratch - Specialised databasesprofessional
Insurance Fraud Rings
An insurer suspects organised fraud rings: groups of claims that look unrelated but share phone numbers, bank accounts, addresses, repair garages or witnesses, sometimes four or five links apart. Investigators want to open a claim and see, within a second or two, every other claim connected to it through any chain of shared details, and to spot new rings as claims arrive. About twenty thousand claims a day come from the claims system, which must not slow down or wait while the analysis happens. The team would rather not write application code that joins tables recursively, and wants a managed database built for exploring relationships.
Multiple choiceFill the gapsBuild from scratch - Containersprofessional
Kubernetes Platform for Forty Teams
A retail group's forty product teams already package their services as Helm charts and deploy them with Kubernetes tooling to clusters in the group's own data centres. Moving to AWS, the platform team wants to keep the Kubernetes manifests, Helm and the same operators unchanged, but stop running the Kubernetes control plane themselves. Web traffic for many services should arrive through a managed HTTP load balancer that routes by host name and path to the right service, and the teams' shared relational data must sit in a MySQL-compatible database that replicates across three Availability Zones and fails over quickly.
Multiple choiceFill the gapsBuild from scratch - Concurrency at scaleassociate
Live Cricket Scores
A sports app streams ball-by-ball scores for international cricket. During a big match twenty million fans have the scorecard open and the app asks for the latest score every few seconds, so the same few match items in DynamoDB are read hundreds of thousands of times a second. Scorers post each ball through the same API, and fans should see it within about two seconds. The table already holds every match, and the team does not want to change its data model or application queries, but reads for one match are hitting the limits of a single partition and the bill is climbing. Responses that are a second or two old are perfectly acceptable.
Multiple choiceFill the gapsBuild from scratch - Search and analyticsassociate
Marketplace Product Search
An online marketplace stores its two million product listings in DynamoDB, which serves product pages quickly by listing ID. Shoppers now expect a search box that finds products from free text, forgives spelling mistakes, ranks the best matches first and offers filters such as brand and price range with counts beside each. When a seller edits a listing, the change should appear in search within a few seconds, without the seller's save waiting on the search index, and the team does not want a nightly job that re-copies the whole catalogue. Product pages must keep reading from DynamoDB exactly as they do today.
Multiple choiceFill the gapsBuild from scratch - Real-time applicationsassociate
Mobile Game Leaderboard
A mobile puzzle game with four million daily players shows a global leaderboard and one per country, both updated the instant a player finishes a level. Players open the leaderboard constantly to see their own rank and the ten players either side of them, so reads must come back in a few milliseconds even at peak. The team wants one managed store that keeps scores in sorted order natively and holds them durably, so that a node failure never resets anyone's rank and there is no separate database to keep in step. The game already calls an HTTPS API, and the backend should scale with players without servers to manage.
Multiple choiceFill the gapsBuild from scratch - Orchestrationassociate
Monthly Card Statements
A credit-card company must produce a PDF statement for each of its 1.2 million customers on the first day of every month and email each customer a link to it. The run must start by itself shortly after midnight on the first, finish within a few hours, and work through customers in parallel rather than one after another. If rendering a single statement fails, that one should be retried and, if it still fails, set aside for a person to look at, without stopping the others. Operations wants to see how far the run has got at any moment. The PDFs must be kept for seven years, and the team does not want servers sitting idle for the other twenty-nine days.
Multiple choiceFill the gapsBuild from scratch
Run out of scenarios? Have one written.
A plan comes with 10 new scenarios a month, written for you on a shape you have not practised yet, and scored the same way as everything above — by the same rubric, with the same breakdown and the same written review.
See the plans →Learn the shapes
16 architectures most scenarios turn out to be a variation of, each with the signals in a brief that point at it and what it costs you. They also appear on a blank canvas while you are building.
Browse the shapes →How you’re scored
Your design is scored against what the scenario requires, and the same design always gets the same score. The AI review then explains what is accurate, what is wasteful and what is missing. It writes about the score and never changes it.
See the plans →