josefrichter
Phoenix app for high-concurrency limited-capacity course booking use case?
I have a legacy system for managing courses at the university. Every half year, this happens:
- limited capacity course (30 people) opens
- 1000 people trying to enroll in that course at the same time (literally waiting at computers to hit the “enroll” button at 8:00am sharp)
- dozens/hundreds of courses like that, thousands/tens of thousands of people in the system fighting for free slots literally at the same time
- system (php based) goes down…
I’d have the following questions:
- could phoenix significantly improve performance and reliability here?
- would I enjoy significant improvement “out of the box” even without employing any advanced techniques like ETS, etc.?
- is this mostly the webserver issue, or is postgres also a potential bottleneck?
- is it possible to roughly guesstimate some numbers? how much traffic I might be able to handle at what cost?
Thank you very much for any suggestions and advice!
Most Liked
josefrichter
Thank you. I really appreciate the honesty of saying elixir would be great, but I can still save the day with current technology. Fair answer! Even though massive scaling would be required, it’s still just 2 days every year, and thus probably cheaper even in medium- to long-term ![]()
lpil
Hello!
Elixir is great at handling high load, but if you have an existing system and know exactly when the load is going to happen is there a reason not to avoid the re-work and instead scale up the existing PHP application before the event happens? I would dramatically increase the size of the database instance and horizonally scale the PHP application the day before and scale them back down the day after.
This will cost a little money but it’ll save huge amounts of developer time compared to a rewrite, and develoer time is far more expensive than servers.
aenglisc
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #hex









