Skip to main content

AI & assistant-friendly summary

This section provides structured content for AI assistants and search engines. You can cite or summarize it when referencing this page.

Summary

A lab design review still had a cron server for a nightly job. Classic Lambda had already stopped at 900 seconds. Name the primitive, or name the stop-rule that keeps the box.

Key Facts

  • •Classic Lambda had already stopped at 900 seconds
  • •A design review in the lab on 4 October 2026 still had a cron server on the diagram
  • •The note beside it said the nightly job was "just a Lambda
  • •Classic Lambda stops at 900 seconds
  • •On Lambda Managed Instances, asynchronous invocations and event-source mappings can run for 5,400 seconds, except Amazon MQ and Amazon DocumentDB

Entity Definitions

Lambda
Lambda is an AWS service discussed in this article.
S3
S3 is an AWS service discussed in this article.
DynamoDB
DynamoDB is an AWS service discussed in this article.
Step Functions
Step Functions is an AWS service discussed in this article.
EventBridge
EventBridge is an AWS service discussed in this article.
SQS
SQS is an AWS service discussed in this article.
SNS
SNS is an AWS service discussed in this article.
Glue
Glue is an AWS service discussed in this article.

Before You Build It: The AWS Primitive That Replaces the Custom Piece

Cloud ArchitecturePalaniappan P5 min read

Quick summary: A lab design review still had a cron server for a nightly job. Classic Lambda had already stopped at 900 seconds. Name the primitive, or name the stop-rule that keeps the box.

Key Takeaways

  • Classic Lambda had already stopped at 900 seconds
  • A design review in the lab on 4 October 2026 still had a cron server on the diagram
  • The note beside it said the nightly job was "just a Lambda
  • Classic Lambda stops at 900 seconds
  • On Lambda Managed Instances, asynchronous invocations and event-source mappings can run for 5,400 seconds, except Amazon MQ and Amazon DocumentDB
Lab figure, 4 October 2026. A cron host for a nightly job marked Timeout at 900 seconds, next to the Lambda timeout ceiling. Not a customer account.
Table of Contents

A design review in the lab on 4 October 2026 still had a cron server on the diagram. The note beside it said the nightly job was “just a Lambda.” The run ended in status Timeout. Classic Lambda stops at 900 seconds. On Lambda Managed Instances, asynchronous invocations and event-source mappings can run for 5,400 seconds, except Amazon MQ and Amazon DocumentDB. Those ceilings are in the Lambda timeout documentation. The review had not used them, and it had not named the primitive that should replace the box.

Lab figure of one design-review row: a cron host, EventBridge Scheduler, and the stop-rule that would keep the server. Not a customer account.

Lab figure, 4 October 2026. Not a customer account. The fork is the row: custom box, primitive, and the condition that means the primitive is wrong.

This page is the checklist. It does not re-explain the articles it points at. The EventBridge patterns post, the event-driven pattern, the Step Functions patterns post, the S3 Tables reference, the lakehouse pattern, the S3 Vectors post, and the S3 Files post keep their own depth. Non-S3 storage goes to the storage decision tree.

Reproduce this — Copy the design-review checklist. One row per custom box. Fill the primitive, the URL, and the stop-rule before the review approves a build.

The rule

Name the custom box first. Then name the primitive, the URL that already owns it, and the condition that means the primitive is wrong. If you cannot name that condition, you are about to restate a product page. Stop.

We recommend the primitive over the custom box when the stop-rule is false. The trade-off is lock-in to an AWS API boundary. Take that trade when the alternative is a server, a glue function, or a database you would operate only to imitate the primitive. Keep the custom piece when the stop-rule is true. “Both are fine” is how cron hosts survive the review.

Checklist

Custom boxPrimitiveExisting URLKeep the custom box when
Cron host or Task SchedulerEventBridge SchedulerEventBridge patterns (Scheduler is one section, not this article)The scheduled work must branch, read a database, or fan out. A function that only calls one API is the one-call Scheduler spoke. A job longer than 900 seconds is not a classic Lambda target.
Lambda that only forwards a stream onto a busEventBridge PipesEvent-driven patternEnrichment is specific to your service. The pattern’s own rule: write a Lambda only then. Do not redraw the outbox here.
Status table that exists to remember a multi-step workflowStep FunctionsStep Functions patternsThe work is one API call with no retries, waits, or branch. A database of “job rows” for a workflow AWS can hold is the box to delete.
Hand-rolled Iceberg maintenance jobsS3 TablesS3 Tables reference and the lakehouse patternThe table is not Iceberg on S3 Tables, or you already operate a catalog this article must not re-argue. Compaction pricing stays on the lake article.
A vector database stood up by defaultS3 Vectors, or the store the vectors article already comparesS3 VectorsThe retrieval budget is a sub-50 ms tool loop. That post already sends that case to MemoryDB or OpenSearch Serverless. Do not repeat the 10,000-result limit here.
POSIX mount of a bucket from Lambda, including a SQLite fileS3 Files, or EFS when locks matterS3 Files vs EFSWriters need flock() across concurrent invocations. That post already says the mount will corrupt the file.
Another “which disk” debate (EBS, EFS, FSx)The storage decision treeWhich AWS storageYou are choosing an S3 data primitive (Tables, Vectors, Files). That is the rows above, not a new storage 101.

Four jobs on this list do not have a deep article yet, or they have one that was published with this page. One line each. Do not expand them in the review.

  • Recurring dataset copy is DataSync. A partner who must drop files is Transfer Family. The fork is DataSync versus Transfer Family. The migration strategy post mentions DataSync and does not specify either product. Do not approve an rsync box or a self-managed SFTP host in the same review.
  • Which mover lands a table (Glue Zero-ETL, DMS, Firehose, AppFlow) is the ingestion decision.
  • How changes reach S3 Tables is the CDC article.
  • A license renewal treated as a connection-string change is the Oracle and SQL Server decision.
  • A funded rewrite of application source is the continuous modernization decision. Transform does not delete the cron host. The primitive does.

Where the primitive is the wrong tool

Lab figure showing the cron host removed from the diagram, and a 900-second function still rejected as a scheduler. Not a customer account.

Lab figure, 4 October 2026. Not a customer account. The check passes when the server is gone. A two-hour job drawn as classic Lambda still fails.

The failure mode is a timeout, not a missing feature. Classic Lambda stops at 900 seconds. A nightly job that runs for two hours, wrapped in a function because “we are serverless,” ends in status Timeout. Raising the timeout past 900 seconds is not available on classic Lambda. Lambda Managed Instances extend asynchronous and event-source work to 5,400 seconds, except Amazon MQ and Amazon DocumentDB. That operating guide is already published. This checklist does not pick compute. It stops the review from calling a 900-second function a scheduler.

The second failure is a glue function that only calls PutEvents or one SDK API. EventBridge Pipes already pull from DynamoDB Streams, Kinesis, SQS, and DMS. The pattern says to write a Lambda when enrichment is service-specific. A function that copies the record is the custom box.

What to Do This Week

  1. Export the current design’s custom boxes: cron, glue Lambda, SFTP host, ingestion worker, vector sidecar, workflow table.
  2. Fill one checklist row per box. Empty stop-rule means the row is unfinished.
  3. Delete the box when the stop-rule is false and the URL exists.
  4. Send DataSync versus Transfer Family and the one-call Scheduler to those spokes. Do not design them in the margin.
  5. If more than one row changes the estate, take the checklist to an architecture review.

What This Post Doesn’t Cover

DataSync versus Transfer Family, the one-call Scheduler spoke, the four-way compute decision (classic Lambda, Managed Instances, Fargate, Lambda MicroVMs), and fan-out across Batch, Distributed Map, and Glue are separate articles. This page does not restate EventBridge versus SNS versus SQS, Step Functions patterns, Iceberg compaction, S3 Vectors query limits, or the S3 Files cost model. Those URLs remain the source for those questions.

Frequently asked questions

When should a design review reject a custom box?

Reject it when a managed primitive already does the job and the stop-rule on that row is not true. A cron host for a time trigger, a Lambda whose only job is to forward a stream, and a sidecar vector database are the usual rejects. The checklist names the primitive, the existing article, and the condition that means the primitive is the wrong tool.

When should we keep the custom piece?

Keep it when the stop-rule on that row is true. Examples from the linked articles: enrichment that is specific to your service (EventBridge Pipes is the wrong glue), flock() across concurrent writers (S3 Files is the wrong mount), and a job longer than 900 seconds on classic Lambda (a cron function is the wrong compute). The primitive is the default. The stop-rule is the exception.

Does this article explain EventBridge, Step Functions, or S3 Tables?

No. Those articles already exist. This page is the router. A section that restates buses, state-machine patterns, or Iceberg compaction is out of scope and should be cut.

What if the primitive we need has no article yet?

DataSync versus Transfer Family, and the one-call EventBridge Scheduler spoke, own those boxes. Do not invent the design in this review. Record the custom box, name the primitive, and use those decisions instead of a margin sketch. Do not approve a self-managed SFTP host or a Lambda whose only job is one API call.

What breaks if every row becomes a product primer?

The page starts competing with URLs the site already owns. Reviewers then get two explanations and no stop-rule. Keep each row to the primitive, the link, and the condition that means you should not use it.

Where does an architecture review go after the checklist?

A row that fails sends the team to the linked article, not to a build ticket. If several rows fail, or the estate is large enough that the checklist is the engagement, book an architecture review.

PP
Palaniappan P

AWS Cloud Architect & AI Expert

AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.

AWS ArchitectureCloud MigrationGenAI on AWSCost OptimizationDevOps

Related Architecture Patterns

Not sure which approach fits?

Which AWS Storage Service Should I Use?

S3, EFS, FSx, EBS, or Storage Gateway? Answer 5 questions and get an opinionated storage recommendation with the comparison guide that goes deeper.

Use decision tree →

Recommended Reading

Explore All Articles »
10 min

S3 Vectors: 10,000 Results per Query (June 2026)

On June 16, 2026, S3 Vectors raised the QueryVectors limit to 10,000 results per query and cut data-processed charges up to 80% on indexes over 10M vectors. Architecture, pagination, and cost comparison vs OpenSearch and MemoryDB.