BOOKMYSHOW System Design, FANDANGO System Design | Software architecture for online ticket booking

  Рет қаралды 268,895

Tech Dummies Narendra L

Tech Dummies Narendra L

6 жыл бұрын

Learn how to system design BOOKMYSHOW or FANDANGO or Online ticket booking system.
One of the famous interview question in companies like Linkedin, facebook and many startups.
Here is the system design diagram : imgur.com/Ij2FqKs
#bookmyshow #systemdesign #architecture #interviewpreperations #amazoninterviews
#interviews #learnsoftwaredesign
Donate/Patreon: / techdummies

Пікірлер: 274
@mrinmoym
@mrinmoym 5 жыл бұрын
Great video, wanted to correct a wide-spread incorrect assumption about Relations in context of RDBMS. A "Relation" in RDBMS do not represent the relationship between 2 tables. Many believes thats the case. But Relation in RDBMS means a "Table". So all rows belonging to a Table is "related" set. In other words Table=Relation and it stems from the Set Theory.
@aneeinaec
@aneeinaec 2 жыл бұрын
Isn't it related to entity relation ship model? Which is relation ship between entities and entities represented by individual table?
@kelvinflow
@kelvinflow 2 жыл бұрын
@@aneeinaec relationship*** != relation
@orpat007
@orpat007 5 жыл бұрын
you are my new favourite on youtube. Keep up the good work. Thanks for such informative videos.
@sachinpabale
@sachinpabale 5 жыл бұрын
Real good video i saw every video of yours and it really helped me cracking interview of one of the big 4.. i used concepts of this video in my design n architecture, and it really helped me.. keep doing good stuff man..
@krishnaverma7744
@krishnaverma7744 4 жыл бұрын
I can see you worked hard for this video Very clear and easy to understand Thanks for sharing
@connect2rajib
@connect2rajib 5 жыл бұрын
You are really good in teaching.Please keep up the good work.It is helping millions of people like us to learn.
@vikashkumarchaurasia1299
@vikashkumarchaurasia1299 2 жыл бұрын
Great video , best explaination i have ever seen for BMS on youtube. Thanks a lot
@pandiarajanrajendran4505
@pandiarajanrajendran4505 5 жыл бұрын
This is one of the high quality system design content. Very useful. Thanks a lot. As others mentioned, I'm also expecting LLD from you. As these days a lot class designs are expected during interviews, like designing a HTML parser, parking lot, ORM framework, DI container, unit testing framework.
@TZ-oi4od
@TZ-oi4od 7 ай бұрын
This is a good example of how an SDE i/ii would design the BMS in an interview, as interviews would like the candidate to talk more about how the 15 mins locking period (book to pay) is implemented and how the tickets are not oversold when the QPS is super high. Narendra I'm wondering how would you do if you are asked to record this video again after 5 years, thanks!
@dhananajaykrishna8259
@dhananajaykrishna8259 4 жыл бұрын
Awesome!! Explained really well....Looking forward for many such videos
@kishrazor
@kishrazor 5 жыл бұрын
Thanks for the detail explanation,it is very useful.
@soumyabiswas6251
@soumyabiswas6251 4 жыл бұрын
Short and simple - Thank You Narendra :)
@subhayu2148
@subhayu2148 4 жыл бұрын
awesome detailed explanation cleared lot of technology doubts as well.
@MrJaswant10
@MrJaswant10 4 жыл бұрын
Hi Narendra , you have explained the session very well. I am your consistent viewer/user and follow your all system design related series and concept.
@diptidesai7399
@diptidesai7399 5 жыл бұрын
Absolutely Superb explaination in just 27 mins...i cleared most of doubts and gave knowledge on the latest techologies like NoSQL. Thank you, Narendra. Great job. May God bless u
@SwapnilSuhane
@SwapnilSuhane 5 жыл бұрын
awesome ..covered almost all design aspects..
@MeenaSivan
@MeenaSivan 4 жыл бұрын
Like your indepth knowledge and explanaitions!
@dharmendrabhojwani
@dharmendrabhojwani 5 жыл бұрын
Nice video. Initially I thought he can't do it but I was wrong. It went very well. Nice. Looking forward for more such videos
@TechDummiesNarendraL
@TechDummiesNarendraL 5 жыл бұрын
Dharmendra Bhojwani Thanks a lot, am pretty new to explaining stuff and I am always open for suggestions. Please do suggest me some improvements.
@sureshbabu-ne2kv
@sureshbabu-ne2kv Жыл бұрын
Impressed, It has huge information bro
@anastasianaumko923
@anastasianaumko923 Жыл бұрын
Thank you so much for your work 😌 Very educative
@amitprakashpandeysonu
@amitprakashpandeysonu 3 жыл бұрын
Thanks for nicely explaining each and every details.
@ameerm7894
@ameerm7894 3 жыл бұрын
Great explanation of each comments, usage and use cases etc... Keep it excellence work...
@karanm1992
@karanm1992 5 жыл бұрын
This was really helpful.
@ashishbhalgat2482
@ashishbhalgat2482 3 жыл бұрын
Very well articulated. Thanks
@SaurabhKumar-jk4nl
@SaurabhKumar-jk4nl 5 жыл бұрын
Doing great job !! Thank you :)
@nishantraithatha8701
@nishantraithatha8701 5 жыл бұрын
great job in detailed explanation
@sajaljain3610
@sajaljain3610 8 ай бұрын
Superb Video and Explanation, thanks for continued help.
@siddeo85
@siddeo85 Жыл бұрын
nice video, understood the basics of system design. Planning to read about each individual unit you briefed in the video.
@arjun.s5112
@arjun.s5112 3 жыл бұрын
Thank you so much. This helped me !
@tarunkr.9041
@tarunkr.9041 4 жыл бұрын
Love your efforts
@JM_utube
@JM_utube 4 жыл бұрын
awesome video thank you so much
@ameyapatil1139
@ameyapatil1139 4 жыл бұрын
Superb ! Great video.
@bharath_v
@bharath_v 4 жыл бұрын
One of the best!
@HemantNegi
@HemantNegi 5 жыл бұрын
Great video. I want to understand more about scaling a SQL and No SQL database and how to overcome problems like Replication delay, Consistency, Transactions and Different locking strategies on a highly available distributed database. Please can you make a video explaining this only. Thanks
@SunilGupta-ki2qw
@SunilGupta-ki2qw 5 жыл бұрын
Very well explained :)
@vedantgunde1881
@vedantgunde1881 3 жыл бұрын
Superb explanation
@user-fc3nq7wy3m
@user-fc3nq7wy3m Жыл бұрын
Very clear system design
@PrashantGupta-mq4hw
@PrashantGupta-mq4hw 2 жыл бұрын
great job! sir
@kiranspillai03
@kiranspillai03 4 жыл бұрын
Great stuff. Thanks
@dvlduvall
@dvlduvall 3 жыл бұрын
Love the dog barking on the background. These are great series. Thank you so much for simplifying the interview process.
@vadane1
@vadane1 4 жыл бұрын
Great video, great explanation
@funnybugsbunny
@funnybugsbunny 3 жыл бұрын
Very detailed. Thanks
@pushpak3981
@pushpak3981 4 жыл бұрын
Thanks for such valuable information and time brother. :)
@sunny0287
@sunny0287 7 ай бұрын
Great content ... very well explained in simple terms and at perfect pace.....
@devarajchennur9911
@devarajchennur9911 4 жыл бұрын
Great explaination ....hats of🤓🤓🤓🤓
@dipankarsana6445
@dipankarsana6445 5 жыл бұрын
Thanks for the video. I was looking for system design for 1. Google Maps 2. E-commerce website like flipkart. It will be great if you please make videos for those. Keep up the good work. Thanks.
@SantoshKotagiri
@SantoshKotagiri 4 жыл бұрын
Great video. lots of information very well explained. Good work. Thanks. You could add a little bit more details on SQL and NoSQL data modelling along with entities you covered it would be great.
@shreyansborad9977
@shreyansborad9977 2 жыл бұрын
Really Nice video and explanation
@DebasisUntouchable
@DebasisUntouchable 4 жыл бұрын
very informative, thanks a lot :)
@vivekgrewal8129
@vivekgrewal8129 4 жыл бұрын
I watched your other system design videos which are great. But I feel this one could be better if you would have focused more on the microservices which we will have in this use case and how they are interacting to fulfill our requirements. And less focus on specific technologies. The system design diagram looked more generic which should highlight more on solving the business problem.
@AmitJigajinni
@AmitJigajinni 2 жыл бұрын
i agree with Vivek here. This is a very generic design. you should put in the service names naming which one handles what responsibility . You also have mentioned nosql and cache. would have been better if you started simple and then address how adding these 2 will address the problems related to speed and concurrency.Try #CodeKarle channel's system design for air bnb its quite similar question about tkt booking and he has explained it much more better.
@RaviChandraEnaganti
@RaviChandraEnaganti 3 жыл бұрын
In the architecture, the ELK stack is generally to be used for server log aggregation and searching. For Searching, You might just need any indexing database like Lucene based Solr, Elastic. The data can be indexed to the search databases from the transactional systems using a pipeline.
@vishnuv4813
@vishnuv4813 8 ай бұрын
Does ELK forms Elastic search,Logstash and Kibana? Why again separate specification of Lucene or its derivatives? Pls clarify
@RaviChandraEnaganti
@RaviChandraEnaganti 8 ай бұрын
@@vishnuv4813 Yes both of them can be Elastic search. But it is better to maintain separate instances of Elastic search for logging and Application search for the sake of separation of concerns. Logging might be huge data, application search might have relatively less data. If you have the same search database for both, you might face noisy neighbor problem i.e log data causing slowness in the response of the application. Micro services architecture prefer separate databases for separate services.
@jaswantpardeshi9029
@jaswantpardeshi9029 3 жыл бұрын
Thank you for this video.
@feziletati2958
@feziletati2958 3 жыл бұрын
great work keep it up
@lordlynxtube
@lordlynxtube 5 жыл бұрын
Your system design videos are very good. Please do more.
@TechDummiesNarendraL
@TechDummiesNarendraL 5 жыл бұрын
Thanks a lot, and sure I am working on it.
@PARVEENKUMAR-qr9cz
@PARVEENKUMAR-qr9cz Жыл бұрын
Nice informative video from beginner perspective.
@anilkumarpandey4572
@anilkumarpandey4572 5 жыл бұрын
You rock man.
@krishsrivatsav7308
@krishsrivatsav7308 4 жыл бұрын
Very useful video tqsm bro
@monkwhocodes790
@monkwhocodes790 3 жыл бұрын
Great videos. Your videos helped me crack interviews at Amazon and Goldman Sachs. Thank you❤️
@nadeemqureshi9779
@nadeemqureshi9779 3 жыл бұрын
Big thumbs up!!
@xuedong360
@xuedong360 3 жыл бұрын
great !!!
@dsunilkulkarni
@dsunilkulkarni 5 жыл бұрын
Excellent
@AbhishekSharma-si8ui
@AbhishekSharma-si8ui 4 жыл бұрын
AWESOME
@balajimysore5868
@balajimysore5868 5 жыл бұрын
Good informative video
@cseshivaprasad1985
@cseshivaprasad1985 3 жыл бұрын
I have been lately following your system design videos which have good meat in it. Specifically for this video, I feel it could have been made better focusing on the crucial information - Strong Consistency handling with Optimistic Concurrency Locks, how it fits into this use-case - Good reasoning around the choice of DBs for Search and Booking and how does the data synchronization happen between the two - Pub-Sub model when we publish single booking event and how it will be interpreted by its subscribers for its own use-case such as notification, analytics etc.. - Reasoning covering the choice of the DBs such as CAP theorem fitment, scale, schema flexibility, data distribution - Clear separation of Functional and Non Functional requirements
@codedestiny6955
@codedestiny6955 3 жыл бұрын
Yes specially booking the same seat by users, suppose your system is getting 100k request per day How you're going solve this problem ???
@yogini1351
@yogini1351 Жыл бұрын
Great question. @TechDummiesNarendraL Would like to hear your solution to this problem
@user-pn8vw8rr3m
@user-pn8vw8rr3m 5 жыл бұрын
Excellent explanation as usual! Subscribed to channel.
@TechDummiesNarendraL
@TechDummiesNarendraL 5 жыл бұрын
Thanks alot
@Everevolvingguy
@Everevolvingguy 5 жыл бұрын
How to handle when other platforms books ticket. How to update the seat chart please explain that. This is very simple what you explained
@sangeethakp6217
@sangeethakp6217 5 жыл бұрын
Excellent explanation - thanks a ton for this! :) I had a quick question - can we place Varnish in front of the Load Balancer?
@shivaprasad.v.g7526
@shivaprasad.v.g7526 3 жыл бұрын
Compared to other videos this lacks technical depth. How exactly locking happens , how theater API's works , why do we need logstash etc are required in my opinion
@suryatej3791
@suryatej3791 2 жыл бұрын
Locking probably at database isolation level via read committed technique
@satishpatel3518
@satishpatel3518 Жыл бұрын
locking is database concept with verious lavel ex. write lok,read lock,both ....
@sachinjindal4921
@sachinjindal4921 3 жыл бұрын
Nice Stuff
@mohitg7151
@mohitg7151 5 жыл бұрын
You are doing a good job explaining high level overviews of architectures. This can be improved by reducing each video to byte-sized videos based on a concept or by provding duration markers.
@TechDummiesNarendraL
@TechDummiesNarendraL 5 жыл бұрын
Yeh, you are right. Time consuming but possible. Considered :)
@kryptu
@kryptu 4 жыл бұрын
very useful.
@priyalagarwal371
@priyalagarwal371 5 жыл бұрын
Hey, very helpful video thankyou for this one. Though, it would be great if you can make system design video of make my trip.
@pravaskumar7078
@pravaskumar7078 5 жыл бұрын
Excellent..
@rakeshsekar3840
@rakeshsekar3840 5 ай бұрын
Thank you
@chabhishyam
@chabhishyam 5 жыл бұрын
Very Good Information. Thank you so much for the nice content. One question from my side. U have mentioned that we can user elastic search for searching of movies, theaters, etc. So from where the elastic search will consume the data..? I mean what will be the input data source?
@MrSanblazer
@MrSanblazer 5 жыл бұрын
Great video ..this was very helpful. Can you do a system design video explaining docker and kubernetes in detail? Thx
@Kasatankit
@Kasatankit 5 жыл бұрын
@Narendra L : Awesom set of videos. Please make a video on designing train reservation system (irctc) , Asked in Amazon multiple times.
@nishat2ahmad
@nishat2ahmad 5 жыл бұрын
Thank you for such a detailed explanation I have two queries 1. As you said there is relationship between entity like movie,Cinema etc that is why we should choose RDBMS,But if read to too heavy should not we choose denormalized database design? As Music player has been designed in Cassandra's official blog. Where as per query table has been designed, of course for booking we can go with RDMS because it will need transaction. 2. I have seen different blogs where they have explained to first calculate TPS and DB sized required,It is really required in interview to calculate tps and db size
@TechDummiesNarendraL
@TechDummiesNarendraL 5 жыл бұрын
1. Yes you are right RDBMS is must when you need transactions. In case of MOVIE->ACTOR relationships you can use De-normalized database tooo(depends of size and QPS) or you can use RDBMS and a caching layer if reads are more. It is absolutely possible to build relationships using Cassandra with proper data-modeling. 2. It depends, please clarify it with interviewer before you answer(its always good to have DB size calculation as it gives you an idea of what kind of DB you should go for). I also including DB size and TPS/QPS information in recent videos too.
@ajitkumarpes
@ajitkumarpes 5 жыл бұрын
Nice video, Can you please add video for retail website like amazon, When they will have sales how they will manage lots of request and availability of item for particular pin-code and how they will decide one day delivery of item. It will be very helpful if you will add this. Thanks
@ashupu
@ashupu 5 жыл бұрын
Please include class diagram, database design and also some basic coding for all the system design . That will help much to visualize all the things behind the scene.
@bertieeusebius
@bertieeusebius 5 жыл бұрын
Thanks. This is really great. One question. When you walked through user flow towards the end, you didn’t tell how the backend RDBMS comes in play. Kindly elaborate
@thorthegreat10
@thorthegreat10 5 жыл бұрын
Thank you for the video - I love how you did the diagram of all system components. Can you do a follow-up material on how to support that ticket reservation (in more technical details)? I've done an interview with Google recently, one engineer asked this sys desing question, but drilled in depth on that ticket reservation. Details from my interview - user can book up to 10 tickets (sets) at the time, it's reserved for him fo 2 minutes, there must be no collistions (like user 1 sees seat A23 as available, then spend 1 minute to fill the info, but the same seat booked by other user 2 and user 1 got error response)
@mailurvj
@mailurvj 4 жыл бұрын
I guess following will happen: 1. Call theater's API to get available and booked seats for a movie+show-date-time combination for a theater in a city. 2. User chooses and selects the seats. clicks next. 3. Call Hold API for the selected seats (Hold for 5mins), it'll appear as booked to any users who tries to see available seat. if unavailable return error to user and let them select other seat/ 4. let the user fill all the details, login if was not loggedin, add payment details. 5. This is optional - verify credit card and place hold. if payment can't me held show error to user and let them enter a new credit card. 6. validate seat can be booked and still has hold, if unavailable return error to user. 7. collect payment, if payment can't me collected show error to user and let them enter a new credit card. 8. Mark seat as Booked in theater. 9. Return confirmation to user.
@umangmalhotra1222
@umangmalhotra1222 3 жыл бұрын
Wow !!!!!!!
@mayankrathore7558
@mayankrathore7558 5 жыл бұрын
It was great thanks brother really appreciated
@dishagupta6923
@dishagupta6923 5 жыл бұрын
Hey Narendra ... good learning for me by watching this video. You explained in a very good way. Could you please help me by letting me know from where should I check the further design details i.e. low level design
@vatsalshah8389
@vatsalshah8389 2 жыл бұрын
Hi Narendra, You explained very well. Well, the basis on the explanation, Would you please cover the scenario that If, the theaters would have their own booking system and they are taking bookings from various sources such as Book my show, Paytm and so on then how it would work ? Also, the counter question is.. how to handle the same request at the same time from two or more sources?
@321zipzapzoom
@321zipzapzoom 3 жыл бұрын
Awesome explanation..just one quick question which I have is..how to handle increased number of users logging in accessing the booking flow from concurrency perspective..thanks again mr. Naren
@vipinjain6410
@vipinjain6410 5 жыл бұрын
Please add information about movie timings as well, rest all is helpful. Thanks a lot.
@bharathpreetham2840
@bharathpreetham2840 4 жыл бұрын
good video
@mahahrishi
@mahahrishi 4 ай бұрын
Hi Narendra, Thank you for the insightful video on system design. However, I wanted to point out that BookMyShow primarily functions as an aggregator. Therefore, the actual seat availability and booking processes are likely managed by third parties or partners, such as Inox, who handle the ticket reservations. Could you consider creating a video explaining how such aggregators communicate with multiplexes or chains of multiplexes, how they display showtimes and seat availability in real-time, and how they facilitate real-time ticket bookings?
@rajk.4530
@rajk.4530 Жыл бұрын
Good explanation but you have overwhelmed me with thought, I will recommend initially focusing on one problem design bookmyshow and then jumping into the concept of Market Place. even Amazo has the problem of inventory and sometimes you may get a theatre which doesn't have an online system but they are still selling their ticket on multiple site .
@buvanaanguchamy9589
@buvanaanguchamy9589 2 жыл бұрын
Hi Naren, Thanks for the detailed explanation. Can you please create a video for ticket booking system from Theatere side.
@sdvakili
@sdvakili 5 жыл бұрын
Thanks for the problem explanation. 1. Why is it necessary to cache separately at two tiers, Varnish and backend Cache? 2. What tools would you recommend for handling multi DBs, for promoting a slave to master, etc.?
@TechDummiesNarendraL
@TechDummiesNarendraL 5 жыл бұрын
1. Varnish can cache and avoid request even hitting the App server. so less server usage. 2. I haven't worked much on RDBMS :|
@sachinshukla6047
@sachinshukla6047 5 жыл бұрын
MySQL routers can route the request to right master node if original master goes down. Application doesn’t need to do that as router takes care of it
@meyavuz
@meyavuz 5 жыл бұрын
@@TechDummiesNarendraL Thanks for the video. Where does the varnish cache reside? In its own server or in LB server? Also the images and videos of the theaters, should they be stored in CDN? But how fast is it to retrieve from the CDN? Thanks
@ethanbourne8324
@ethanbourne8324 4 жыл бұрын
Can you please do a system design video on how a global distribution system (GDS) for travel works. It would be very helpful. Thanks
@AbhishekKumar-hi8oj
@AbhishekKumar-hi8oj 5 жыл бұрын
nice.
@sushmitagoswami7320
@sushmitagoswami7320 2 жыл бұрын
Can you please break the design into microservice? Thank you for all your efforts. It is really worth watching.
@prudeabhi
@prudeabhi 5 жыл бұрын
Thanks a lot sharing your in depth knowledge regarding the BMS. I will highly appreciate if you could answer one of my query , how do we put a lock on the specific seat for a specific time interval
@TechDummiesNarendraL
@TechDummiesNarendraL 5 жыл бұрын
Every seat is a row in Seats table. U can use Redis(cache) or cassnadra(nosql) which comes with default Time to live(TTL) you can use this. But it's not simple when you have distributed system. Take a look at this article for more info redis.io/topics/distlock
@prudeabhi
@prudeabhi 5 жыл бұрын
Tech Dummies thanks a lot for sharing the info, and keep making some more design videos. Love your explanation
@prakashnandihal8655
@prakashnandihal8655 2 жыл бұрын
@@TechDummiesNarendraL How can i lock row in a table if i am using RDBMS
@rizthetechie
@rizthetechie 2 жыл бұрын
This is nice. I see app servers never talks to rdbms or nosql db directly. There could be lot of scenarios where I have to hit db directly instead of always the cache route.
@thesoftwareengineer17
@thesoftwareengineer17 4 жыл бұрын
hey , can u plz start series with oops design for different applications like shopping cart or medical system
@jaganjkk
@jaganjkk 4 жыл бұрын
Small correction, finally you said you are processing the log data using ELK. Initially you told you do user search for movie using elastic search. As per the design it should be queried and cached right. If we have that information in elastic search, it should be feeded in the form of some data which should not be from log
@ajay-oi8ef
@ajay-oi8ef 5 жыл бұрын
Hi.. Thanks for your efforts in making us understand.. Wanted to know the approximate price to create such a website
Yelp system design | amazon interview question Yelp software architecture
57:31
Tech Dummies Narendra L
Рет қаралды 80 М.
URL shortener system design | tinyurl system design | bitly system design
34:39
Tech Dummies Narendra L
Рет қаралды 454 М.
Heartwarming: Stranger Saves Puppy from Hot Car #shorts
00:22
Fabiosa Best Lifehacks
Рет қаралды 13 МЛН
1❤️
00:17
Nonomen ノノメン
Рет қаралды 9 МЛН
NETFLIX System design | software architecture for netflix
51:26
Tech Dummies Narendra L
Рет қаралды 423 М.
Google system design interview: Design Spotify (with ex-Google EM)
42:13
IGotAnOffer: Engineering
Рет қаралды 1 МЛН
Twitter system design | twitter Software architecture | twitter interview questions
36:56
How I Mastered System Design Interviews
10:22
Ashish Pratap Singh
Рет қаралды 107 М.
System Design: TINDER as a microservice architecture
36:41
Gaurav Sen
Рет қаралды 1,2 МЛН
How to Crack Any System Design Interview
8:19
ByteByteGo
Рет қаралды 324 М.
Heartwarming: Stranger Saves Puppy from Hot Car #shorts
00:22
Fabiosa Best Lifehacks
Рет қаралды 13 МЛН