BookMyShow is India’s largest entertainment ticketing website. Headquartered in Mumbai, it is the only destination for movie and non-movie options like events, plays and sports. Within a decade of its inception, the company poses a 40% CAGR in revenues and over 90% market share in the online entertainment ticketing space.
With offices in India, New Zealand and Malaysia, the company aims to present their customers with endless options to purchase tickets for the latest movies, music concerts, plays, stand-up comic acts, and major sporting events to name a few. Tickets can be booked through various platforms like internet, mobile application, WAP and the in – a house call centre.
With ticketing for over 3,000 screens across 250 cities, BookMyShow has partnerships with all major Indian production houses and studios with real-time ticketing for major cinema chains like Inox, Big Cinemas, Cinemax, Fun Cinemas etc. 85% of all cinema tickets sold online are booked on Bookmyshow, resulting in sales peaking up to 10 million-plus tickets per month.
BookMyShow has ticketed for over 1,500 plays online and is the exclusive and permanent ticketing partners for theatre venues like Prithvi Theater, Mumbai, NCPA Mumbai, Indian Habitat Centre Delhi and Rangshankara Bangalore. With more than 100 million page views per month, BookMyShow has ticketed for more than 300 live large format events and sports events such as ICL, city Marathons, etc.
Launched in 1999
Ticketing for over 5000+ screens across 250 cities
Ticketed for over 1,500 plays online and 300 live shows
the example they charge 0.0 Rs. extra for PVR and Inox tickets, while they, charge some internet handling charge for Goplana cinemas. Here are the possible scenarios :
Bookmyshow a deal with PVR/INOX, each ticket booked they take x% ( a screaming clue is a fact that as I checked very recently both all three sites PVR cinemas, inoxcincemas and BookMyShow did show a final ticket price after fees and tax as exact 178.09 for a ticket priced at 150), for local multiplexes/cinemas/theatres they charge y% where y>x, as these theatres don’t have such strong online presence and/or subscriber base.
Bookmyshow doesn’t charge anything for tickets of biggies like INOX/PVR for the time being, as they are just consolidating their user base (and that was the only way these big multiplexes will work with BookMyShow). As the user base keeps on growing and becoming more loyal to BookMyShow ( ie. BookMyShow becomes the defacto service for ticket booking) they may start collecting a service fee from these multiplexes for each transaction.
Once the user/subscriber base is consolidated enough, Bookmyshow will start collecting a very small charge for the tickets so PVR/INOX, the charge would be such that it will be an unnecessary hassle to go to the PVR/INOX websites to book tickets.
3. The starting journey:
This journey of Ashish Hemrajani started in the year 1999 when he went for a trip to South Africa. During that time he was working for J. Walter Thompson, an advertising firm, after completing his masters in business administration. This trip changed his life. He was sitting under a tree and listening to radio promoting rugby tickets when an idea struck him. He researched, understood the market and contemplated a strategy. He then came back to India, quit his job and decided to start his own company. At the age of 24, he launched his first ever internet venture “Bigtree Entertainment Pvt. Ltd.” with his head office being his bedroom. Soon after, he persuaded his friends Rajesh Balpande and Parikshit Dar to join the company. Parikshit took over technology and Rajesh handled finance. Soon the trio began their journey together as entrepreneurs and led the way forward for Bigtree Entertainment Pvt. Ltd.
4. The Difficulties:
Now it was not an easy task to sell tickets online during that time because of obvious reasons such as no credit card, debit card and net banking penetration, poor broadband connectivity and lack of e-ticketing software in theatres. With all the difficulties also they were doing a good business and accounted for 150 employees. The Dot Com industry was booming as well. There were only two options left for Hemrajani now; either to shut the business down and go with the jobs that were being offered to him by the headhunters or keep hope in the business, invest all his savings and start all over again. Hemrajani’s confidence was not completely lost and he decided to stick with the business only to do things a little differently and mind you smartly as well.
After the Dot Com Tsunami was gone, the market completely changed in India with better Internet facilities, credit card & debit card facilities and improved infrastructure. Between 2002 and 2004, the number of multiplexes across India grew largely. With desperation to get back on their feet, they became software solutions providers that sold automated ticketing software to these multiplexes.
5. BOOKMYSHOW system design !!
Every movie theatre which works along with BMS will have their own POS, Mobile App or Website from which users can get tickets. to support these systems every theatre needs there own
App and website
Without a server at a theatre, this its a lot difficult to build this system. Any third party application/movie tickets aggregator app should work along with Theater’s Server to get seat availability information.
There are many strategies to get seats allocated to aggregators
Every aggregator will have designated rows of seats
works along with a theatre and other aggregators for available seats
A) In the first strategy, we don’t need to keep updating the available seat info from all the theatres, as we have dedicated seats available for us
and we, in turn, offer these tickets to users
B) in the second strategy we need to keep updating the seats availability info and we, in turn, offer these tickets to users
6.What are the possible way to sync the seat booking data?
Connecting to the theatre’s DB
or keep syncing the seats of every theatre always (not a good option) and book
request for available seats using Theater’s API and book using APIs.
Now there can be two or more users trying to book the same tickets!!
How do we solve that? → In Theater side server we need to have a lock with a timeout and assign seat temporarily to the user until he books.
If he doesn’t book within 10 min, release the seat.
If your design involves tons of requests or IO blocking calls, then it is advised to use async in python or go coroutines in go or Erlangs lightweight threads to get better performance.