Hacker News new | ask | show | jobs
by alberth 462 days ago
S3 is the simplest CRUD app you could create.

It's essentially just the 4 functions of C.R.U.D done to a file.

Most problems in tech are not that simple.

Note: not knocking the service. just pointing out not all things are so inherently basic (and valuable at the same time).

8 comments

Now add versioning, replication, logging, encryption, ACLs, CDN integration, event triggering (Lambda). I could go on. These are just some other features I can name off the top of my head. And it all has to basically run with zero downtime, 24x7...
That's the public interface. The underlying architecture is where the power is.
Isn't that the most impressive part? That the abstraction makes it seem so simple
Anyone can create a CRUD API. It takes a _lot_ of work to make a CRUD API that scales with high availability and a reasonable consistency model. The vast majority of engineers would take months or years to write demo.

If you don't believe me, you might want to reconsider how skilled the average developer _really_ is.

I used to have the same opinion until I built my own CDN. Scaling something like that is no joke, let alone ensuring you handle consistency and caching properly.

A basic implementation is simple, but at S3 scale, that's a whole different ball game.

That’s when you really know you hid all the complexity well. When people call your globally replicated data store with granular permissions, sophisticated data retention policies, versioning, and manage to have, what, seven (ten?) nines or something, “simple”.

No problem. I’m sure ChatGPT could cook up a replacement in a weekend. Like Dropbox it’s just rsync with some scripts that glue it together. How hard could it possibly be?

I mean people serve entire websites right out of s3 buckets. Using it as a crude CDN of sorts.

It’s a modern marvel.

I could build a netflix in a weekend.
The point of the article is that making a service at S3's scale with such a simple API exposed to the end user, without exposing the provisioning and durability and security and performance to make it all work...

...is very difficult.

A file system is simple. Open, read, close. Most tech problems are not that simple. How hard could a filesystem be?
Locking, checks after unclean shutdown, sparse files, high performance, reliabilty.... are all things that make filesystems harder.
Erm, most file systems allow you to change data too, right? Hence S3 is emphatically not a file system.
You’ve either never implemented a file system, or just a basic POC of one that nobody used.