4 ms·
Is this satire?
by chvid 8y ago
Is this satire?
- jhwang5 8y agoCertainly it was an attempt to be hip, not sure if it worked.
- chvid 8y agoYes. I know hn don’t like one line questions like that which may be read as an insult. But I honestly cannot tell. It is obviously a lot of work. But the technology mix and design is just absurd. The choice of web shop with hipster products is tongue in the cheek but so was the pet store of year 2000.
- jbarham 8y agoI honestly thought it was myself until I saw that it was an official GCP repo. Unbelievable... Sending emails is a one-liner in Django. Am I a sucker for not building my own email sending service?! Of course being a Google demo they have to include the obligatory ad server service, in Java no less. Nonsense like this is why I'm steering my kids away from considering software development as a career.
- kumaraman 8y agoWhen a company and platform grows it's very common to build out an email sending service since you can only send so many emails per second. An example of an email sending service is Sendgrid, who have built an entire company around this service.
- jbarham 8y agoI'm aware, I've used Postmark for years. My point is that building your own microservice to send emails is ridiculous overkill.
- deleted 8y ago[deleted]
- pmlnr 8y agoSendgrid is not alive for mails/second, that part is not _that_ hard. They are alive because they take the spam blame for you.
- holografix 8y agoSorry to say mate but maybe... I’d usually pop that on a queue and get a separate service to pick it up... maybe that’s what you’re doing?
- zorga 8y agoEmail is already a queue.
- jbarham 8y agoYes, I send emails async using Django-RQ (previously Celery). It's still a one-liner once you've configured your async task handler. Which makes the example custom email sending microservice even more ridiculous when it can be done trivially by configuring proven off-the-shelf components and third party email delivery services.
- kumaraman 8y agoThat works well in your current situation, but when you have multiple products and services that also need to send emails it makes sense to combine them into a single service.
- jsmeaton 8y agoA bit off topic (sorry) but how are you finding django-rq compared to celery? Anything you miss? Anything you gained? I wasn’t sure how ready rq was for prime time, but I’ve hit far too many celery bugs and the maintenance hasn’t been great for awhile.
- jbarham 8y agoI found Django-RQ far simpler to configure than Celery. Given that I'm using Redis for caching anyway, it also removed RabbitMQ as a dependency which Celery basically requires. Django-RQ's job decorator is basically a drop-in replacement for Celery's task decorator. Django-RQ's built-in Django admin app is very nice. My Celery usage was pretty simple (mostly background email sending and PDF generation) but for those use-cases Django-RQ has been a very good replacement. Your mileage may vary of course.
- empath75 8y agoIt’s intended as an example for deploying a complex app using all the available tooling in kubernetes. It’s not intended to be actually used.
- jedberg 8y agoYou know how in most languages you can write "hello world" in a single line, or maybe a couple, but sometimes someone writes it with multiple classes that have some sort of inheritance, and maybe a factory? That's not satire, that's trying to show you how to make classes and factories in that language. This is showing you how to build a full website with microservices on GCE/Kube. It's obviously overbuilt for what it does, that's not the point. The point is to show you how to build something complicated with simple examples.
- chvid 8y agoGood architecture is about keeping complexity in check while ensuring a broad set of goals such as a maintainability, scalability, and reliability. This is an example of an extreme opposite. Almost destructive. Google has enormous mindshare amongst developers; and when they put something like this out there, people will actually see it as an example to follow. Where is the blinking warning sign saying "do not try this at home"? This is nothing like creating too many factories in a Java application.
- joesb 8y agoSo no one should ever see example of when things get complicated?
- chvid 8y agoAs an example not to follow? Software evolves to spaghetti over time unless one makes an effort for it not to happen. It makes no sense to start with spaghetti.
- jedberg 8y agoIf you think this is overly complex, I should show you how some real websites are run. Netflix has over 1000 microservices. I think AirBnB is up there too. When I look at this I think, "Man what a cute little architecture, but at least it shows some of the basics of a large scale website".
- warp_factor 8y agoI hope it is