Looking for pointers to better understand the pros and cons of the tech stacks that can be used to develop the back end of an app with complex business logic. Real time performance (auction) and ability to serve personalized feed will be important as we scale. Backend will be on AWS to start with. Looking for something that is easy to pull of an MVP with but can be easily extended when scaling becomes important. A hybrid Python/PHP for MVP followed by customized C++ for perf intensive modules in the future seems to be a good compromise. But I donāt have enough back end experience to know the pitfalls. Any pointers to good open source projects that I can look at or good online talks on this topic will also be of great help.
Look at the average number of bids for an item on eBay - pretty low. Optimize for discovery. Fast search and personalization is the hard part, you need a lot of item metadata to be effective.
There is too much I donāt know about your usecase to give you any practical advice, frankly you should hire someone to help you. If it is an auction site I doubt you will ever need C++ levels of performance. You CAN make C++ more performant than say Python but if you donāt know what you are doing you are just going to get a garbage heap of memory leaks (do you like how I phrased that?) Network will be much slower than the light compute you need for an auction site. PHP has no place in production today (sorry Facebook), I would not write a prod api in python (middleware) but if you are talking about true backend the answer is: maybe. Python is a hard language to work with (in prod), having a compiler is a great help from shooting yourself in the foot. If you need libs that only Python has it is a reasonable choice. For example for personalized feed you mention there are recommended systems that are pretty easy to do in python. Please donāt overengineer for scale in MVP. What are you familiar with? JavaScript? Great, use node. (I realize node is not compiled but it is easy and lets you have front and back in the same language, thatās why startups seem to be drawn to it). You should probably learn about websockets.
Donāt use C++ to alleviate your Python performance woes. Start by optimizing the Python code as much as possible. When thatās insufficient, look for a pre-written module that you can use thatās faster. If thatās still not good enough, you can try a custom C extension (but Iāve never had to go this far ā numpy covers a surprisingly large set of cases you might otherwise have needed to use a C extension for).
Auction isn't just eBay. It could also be ad tech - where ads are auctioned in real time.
Yes, The use case is more similar to ads pricing in real time. It may not be as real time having to find the best ad in the timescale of each feed being created. More similar to Uber surge pricing: supply/demand data from multiple sources needs to be updated and best value for the item needs to be calculated based in this
Be careful about using tech you donāt know. It could be faster but you fuck over yourself with technical debt past MVP
More important than backend would be your DB design. Poor DB design will fuck over your backend performance & maintainability, whatever framework you choose. Java Spring is pretty ubiquitous in industry for developing backend
Golang?
Any Uber/left back end gurus who can shed some high level ideas on how your surge pricing system is architected: tech stack and other consideration (more importantly how did it evolve from initial to today)
š just use Java bud.