4 ms·
> Unless they are a hobby company, they should increase the prices. The money is in the head, not in the tail. If someone is balking at spending $200/mo on the
by nickjj 5y ago
> Unless they are a hobby company, they should increase the prices. The money is in the head, not in the tail. If someone is balking at spending $200/mo on the lowest level, they are simply not a customer.
It's not balking at the $200 by itself.
It's $200 with the message that I should now have a globally distributed app with low latency because that's what Fly talks about all over their site.
The balk is because all of that goes away as soon as you use Postgres or Redis (which is a ton of apps -- especially Rails). It makes Fly come off as being dishonest because this is a huge thing that's not mentioned anywhere on the pages that try to sell you their service.
It feels like they are leading you into using their platform, you hook everything up, finally deploy your app and then realize that a large percentage of your customers are still getting +200-300ms location related response times because they happen to be outside the location where you're hosting Postgres / Redis. This gets even worse if you heavily invested in Websockets and bet everything on having low latency but still have high latency. This is something that could make your break your business all because of mixed messaging on Fly's site.
I don't think they are doing this on purpose btw. I just think it's easy to amplify a problem so it looks really bad and scary so you can come in and offer a solution. This is a common sales tactic. I just wish they were more open about what happens when using common tech like Postgres and Redis.
- mrkurt 5y agoThe article you're responding to is exactly about Postgres. Here's Redis: https://fly.io/blog/last-mile-redis/ https://fly.io/blog/last-mile-redis/ Here's a boring Rails app that uses Postgres: https://fly-global-rails.fly.dev/ https://fly-global-rails.fly.dev/ And here's more Postgres: https://fly.io/docs/getting-started/multi-region-databases/ https://fly.io/docs/getting-started/multi-region-databases/ https://fly.io/blog/globally-distributed-postgres/ https://fly.io/blog/globally-distributed-postgres/ Rails and websockets are not very good, Phoenix and websockets work great though.
- Aeolun 5y agoHalf of everything their website talks about is Postgres exactly because that is the main source of issues. If you can make requests without writing even once, then Fly can be a great system (especially because you probably don’t need their larger instances in those cases). I think they do a fairly good job of telling you that it’s not for you if you want to write to the DB on every request. I agree with you that I cannot see any use-case for that, which is why I’m not using Fly.
- nickjj 5y ago> I think they do a fairly good job of telling you that it’s not for you if you want to write to the DB on every request. The biggest thing they say on their home page is: > Deploy App Servers > Close to Your Users > Run your full stack apps (and databases!) all over the world. No ops required. Technically it's true because "databases" includes reading, but they don't mention anything about how this model falls apart as soon as you want to perform a database write with Postgres. The entire top area of their home page is optimized to make you think "my real world app is going to be deployed close to users and look how easy it is to get going, I just run 2 commands and it's multi-region deployed". Right below that they have a whole section dedicated to Postgres but they don't mention anything about writes being limited. Instead they talk about highly available clusters and specifically throw in read replicas to leave the burden on the user to infer what they really mean is that writes aren't multi-region and will involve high latency based on the user's location. It's a conflict of messaging. If this service is meant for folks who aren't hardcore into ops they might not even know to think about database writes on their own because the messaging is so geared towards "we do all of this for you, just run 2 commands and you're deployed". > I think they do a fairly good job of telling you that it’s not for you if you want to write to the DB on every request. I didn't find any of this on their home page and if it happens to be mentioned a few times in passing within blog posts or deep in their documentation this feels more like misdirection than helpfulness. It feels more like other vendors in sales where they have a sales page to optimize conversion rates but then somewhere on page 76 of their terms and conditions there's fine print that says "btw, except for when you want to do anything like DB writes with a SQL database, none of these benefits apply" and now if they get questioned they point to this condition and say you should have read it. I Googled for "fly.io postgres writes" and only found 1 article related to postgres writes, but it's really unfortunate because the blog post misleads folks immediately. It's at https://fly.io/blog/globally-distributed-postgres/ https://fly.io/blog/globally-distributed-postgres/ I took a screenshot of it in case it gets edit here: https://imgur.com/a/eY6EJ0e https://imgur.com/a/eY6EJ0e In the first non-bolded paragraph they have: > We won’t bury the lede: we’re going to talk about how you can deploy a standard CRUD application with globally-replicated Postgres, for both reads and writes, using standard tools and a simple Fly feature. Right off the bat they are saying they solved the problem of having a globally distributed postgres set up for both reads and writes using Fly. They even go as far as bolding "for both reads and writes" so that if someone skims this page that might be enough for them to think "awesome, ok Fly is perfect for me" and now head to their page to sign up because all they wanted to know is if that's possible or not, the details can be filled in later. But then later down in the article, below the fold they write: > But these schemes break down when users do things that update the database. It's easy to stream updates from a single writer to a bunch of replicas. But once writes can land on multiple instances, mass hysteria! Distributed writes are hard. So now they contradict their premise that they solved reading and writing in a distributed way and go back to say on second thought, nevermind, we can't handle distributed writes because it's hard. Then later on in the article near the bottom they mention you should avoid using postgres if you have a lot of writes and use cockroachdb instead. What kind of messaging is that? I appreciate what they're trying to do but they send mixed signals around solving a problem they haven't solved which also happens to be tied into their biggest selling point (globally distributed deployments so that end users have low latency responses).