Indian Railways has a huge infrastructure. There are many problems that take place simultaneously. The complex structure and sheer volume of transactions taking place along with other reasons make the IRCTC e-ticketing process very slow. I tried to break down the complex structure of Indian Railways and also tried to find solutions for these problems.
Reasons For IRCTC E-Ticketing Portal To Be Slow:
1] High Volumes And Complex Structure
1] IRCTC is the biggest e-commerce website in the country with more average sales than Amazon and Flipkart combined. And the traffic surges extremely high during Tatkal tickets booking hours. The traffic is so high that big e-commerce website wouldn’t be able to sustain it.
2] Each year, more than 8 billion people travel through the Indian Railways and the maximum number of tickets are booked through IRCTC website. Amazon‘s world record was of selling 13.5 million products worldwide, but IRCTC sells over 21 million tickets on any average day. So now you will have a clear idea of the sheer volume of traffic that the IRCTC web servers have to handle.
3] The people booking these tickets are only operating on the outermost web layer. There are many layers such as website architecture, server configurations, all the way up to the database. A failure occurring at any of these levels can cause a failed process and the user will have to start fresh from login itself.
4] The whole IRCTC e-ticketing system seems good but the main problem I think is just the enormous demand and supply ratio. According to a statistics, even if the whole system was perfect and error free, only 20 million people would’ve been able to get the tickets and still more than 3 times as many people wouldn’t get a reservation.
2] Major Bottlenecks And Preferred Solutions
A] Technical Problems
The seat selection process is far too complex than just a straight forward allotment of all the berths in first come first serve manner. There are so many conditions and quotas and seat numbers etc that makes the process even more tedious and complex to handle at the database level.
Railways offer exact seat number/berth to each and every passenger. There can be more that 500 seats on every single train and thousands of trains run through the whole country. So, on a database level, after applying quota’s and other conditions and also preference by the passengers, it becomes very difficult to manage.
The solution to this would be to just sell the tickets and let the passengers choose the seats/berths later. This system is used in commercial airlines and has proved to be very efficient. The only problem with this would be to educate the people who travel through the train, which will take some time. Some improvements can be done as to retain the berth preference in this case. But it will surely reduce the stress and greatly improve the performance of the system.
This is another huge bottleneck. Payment process triggers a series of simultaneous process and complex handshakes between the IRCTC and payment gateway systems and banks and security measures etc. Failure in these processes may literally cause the user some actual money. But IRCTC does refund money in such cases of failed transactions where money is deducted by no ticket is allocated.
Indian Railways is already working on a “mobile wallet” like the concept, where people will be able to keep cash in a prepaid way. This way, the IRCTC e-ticketing process will get a whole lot faster as well as think about the extra money that will stay with the railways with no interest to pay. This will help the Railways economically also.
Maybe they can provide credit cards like facility also. Many companies are doing this currently.
All of this systems boils down to the database architecture and data handling techniques. They could beef up their architecture with more replication and sharding capability. Most of the work is read bound, so this can be improved in that process.
If the application and database layers are properly coupled then it may be possible to implement active caching which will minimize the rapid read impact without losing the validity of the data being processed.
Most of the irregular traffic load comes during the booking of Tatkal Tickets. This is a small fraction of the huge data that is open for booking. A special type of highly optimized database should be developed to handle this traffic. Also, existing apps should be fine tuned to execute this process more efficiently. Additional hardware should be made available to handle this sudden surge in traffic.
Application Design and Architecture
It’s high time that the Indian Railways get rid of the old age software systems and install fresh new technology. IRCTC mostly uses Windows Stack. I think they should shift to Unix based environments as Unix is stable and runs smoothly without any failure’s.
Also, deploy Cloud services to handle that extra load at some times. The interface is too crowded, therefore, remove unnecessary tabs or put them together in a single tab. A clean interface is very important for smooth functioning. Improve the API by breaking it down into different modules and setting up teams that will look after each individual module. Therefore, maintenance will be easy and efficient.
At the end of the day, Indian Railways is a state carrier. The flaws of our bureaucracy do affect it too.
Slow decision making, scarcity of experts in hardware and software teams. This affects the overall improvement and maintenance of IRCTC. Lack of will is also a major issue. Also, corruption is also a huge roadblock that is keeping IRCTC to grow at a faster rate.
Lack of funds and the Top Down culture that we have here also had a bad impact on the growth. People sitting on the top, if uneducated, don’t know what is lacking or what needs to be improved, therefore, do not initiate the process to improve various things.
These are my assessments on how can Indian Railways can become better and tackle its problems. If you have something to add then do leave a comment below.1