S3 is showing its age
“Age” vs. Features and Market Position
- Some argue the title is misleading: S3’s issues are missing features, not age.
- Others tie the slow pace of new features to its maturity and market dominance: as the “top dog,” it doesn’t need to chase niche use cases.
- Several commenters say S3’s long history and stability are its biggest strengths, especially for data that must last a decade or more.
Design Tradeoffs & Missing Capabilities
- S3 is optimized for immutable objects: you can’t modify parts of an object; it’s full replace-or-nothing.
- Lack of append and in-place partial writes is widely lamented; append would simplify many logging and backup workflows.
- Compare-and-swap (CAS) / put-if-absent semantics and If-Match/If-None-Match-style preconditions are viewed as a major missing feature, despite S3’s strong per-object atomicity.
- Some note limited CAS-like behavior on CopyObject, but not full general CAS.
- There’s no true multi-region bucket; users must stitch together replication and multi-region access points.
Workarounds & Higher-Level Patterns
- Common pattern: use DynamoDB as a metadata/coordination layer over S3 for CAS, locking, two-phase commit, “posix-like” filesystems, and big-data table formats.
- This adds complexity and cost, but enables transactional-ish behaviors and safe deduplication and garbage collection.
- Techniques like storing logs as series of immutable objects in a prefix, multipart uploads, and object-lambda processing are cited as partial substitutes for missing append/CAS features.
Cost, Egress, and Alternatives
- Biggest practical complaint is bandwidth/egress pricing, called “highway robbery.”
- Cloudflare R2 (S3-compatible, no egress fees) is frequently mentioned as an attractive alternative, though some distrust the long-term sustainability of “zero egress.”
- Self-hosted S3-compatible systems (MinIO, SeaweedFS) are appreciated for control and avoiding cloud lock-in.
Simplicity vs. Complexity
- Many defend S3’s minimalist feature set: keeping it “boring” and stable is a virtue; new features risk complexity and bugs.
- Others counter that CAS and first-class multi-region support are “boring essentials,” not scope creep.
- API/auth (AWS SigV4, IAM) are seen as the real complexity; the core object model is simple, but the SDKs and permissions are not.