IPL 2019 proved another huge hit.
The world's most followed T20 tournament lived up to its billing, producing exhilarating entertainment almost every night.
Fittingly, the final was decided off the last ball as Mumbai Indians edged past Chennai Super Kings by 1 run in a thrilling finish.
Several players left their mark on IPL 2019 -- Hardik Pandya, Andre Russell, K L Rahul, David Warner, Rishabh Pant, Kagiso Rabada and Imran Tahir among others.
Harish Kotian/Rediff.com identifies his top performers in IPL 2019:
Hardik Pandya
Hardik Pandya come into the IPL on the back of a tough few months following his controversial comments on a television talk show.
The Mumbai Indians all-rounder bounced back in style and let his swashbuckling batting do all the talking.
It continued to rain sixes from Hardik's flashing blade and his cracking showing with the bat will give the Indian team management a lot of confidence going into the World Cup.
His amazing innings of 91 from 34 balls against the Kolkata Knight Riders was rated by Yuvraj Singh as one of the best knocks he has seen in the IPL.
Pandya played the finisher's role to perfection nearly every time his team needed him to. His strike of 191 this IPL season -- 402 runs in 16 games -- is second only to Andre Russell.
Hardik also made a good contribution with the ball, picking up 14 wickets and also took 11 catches.
Andre Russell
There was no stopping Andre Russell. Many tried, most failed.
He was the only saving grace in an otherwise disjointed showing by the Kolkata Knight Riders.
Despite not getting ample opportunities to bat at the top -- the only time he did, the big Jamaican scored 80 runs off 40 balls -- and despite battling a wrist injury and a sore back, he bludgeoned 510 runs from 14 games at a strike rate of 200, with 52 sixes and 31 fours.
K L Rahul
In addition to being Hardik Pandya's accomplice on their much derided television appearance, Rahul had been battling indifferent form across formats before the IPL.
He not only made up for it in style, but also ended up outdoing his opening partner Chris Gayle in getting his team off to flying starts.
The Kings XI Punjab opener smashed 593 runs at an average of 53, with 6 fifties and a century. Most importantly, what stood out was his intent at the crease.
Few were surprised when Gayle declared that Rahul has the ability to emulate Virat Kohli in the years ahead.
David Warner
He may have been banished from high-profile cricket for 12 months, but you wouldn't have known that seeing the way David Warner dominated bowling attacks across the board in IPL 2019.
Not only was the Sunrisers opener at his dynamic best, Warner also showed that the time away from the game has only made him hungrier for runs.
Before he left IPL 2019 to join the Australian World Cup team, Dave scored 692 runs at an average of 69 with a century and 8 fifties.
The only batsman to get past 600 this year.
Shubman Gill
Shubman Gill showed why he is billed as the next big thing in Indian cricket.
The graceful batsman made a low-key start to the season, courtesy KKR's reluctance to play him in his natural position in the batting order. But once promoted, he oozed with confidence and produced a number of eye-catching batting displays.
There was the quickfire 65 from 39 balls against Delhi Capitals in his first innings as opener, and despite being shunted down the order soon after, he finished the season in style with two more half-centuries once his team realised his value at the top of the order.
He finished with 296 runs in 14 games, and looked good for a lot more whenever he got the chance.
Gill was awarded the IPL Emerging Player of the Year award.
Rishabh Pant
If there is anyone who didn't get why so many in world cricket moan Rishabh Pant's exclusion from India's World Cup squad, they are certain to have joined the chorus following the Delhi left-hander's breathtaking batting performances this IPL season.
He helped Delhi Capitals make a winning start with a sensational 78 from 27 balls against the Mumbai Indians.
Pant's twin half-centuries against the Rajasthan Royals helped Delhi qualify for the play-offs for the first time in 11 years.
He then played another decisive knock in the Eliminator match against Sunrisers Hyderabad, hitting 49 from 21 balls, to take them closer to the final.
With 488 runs in 16 games at a healthy strike rate of 162, maybe he has made the Indian selectors rue his exclusion from the World Cup team.
Mahendra Singh Dhoni
Mahendra Singh Dhoni just sent another reminder that he is far from done with being the foremost game-changer with the bat in white-ball cricket.
Chennai Super Kings made it to the play-offs largely due to his solo efforts. With the top order not among the runs, CSK time and again needed their inspirational skipper to bail them out.
Dhoni didn't disappoint, guiding his team home in tight run-chases and in setting up competitive totals.
His late assault -- 75 from 46 balls -- helped CSK beat Rajasthan Royals by 8 runs before he made 37 from 23 balls on a difficult wicket in their win against Kings XI Punjab.
Dhoni's 58 from 43 balls helped CSK edge past Rajasthan in a tight run chase, but his quick fire 84 not out from 48 balls went in vain against Royal Challengers Bangalore.
Dhoni was CSK's most consistent batsman with 416 runs in 15 games at an average of 134.
Importantly, more than 50 percent of Dhoni's runs in this year's IPL have come in the last 3 overs as he played the finisher's role to perfection.
=Quinton de Kock
Quinton de Kock has historically blown hot and cold in the IPL. His first season for the Mumbai Indians though has proved to be a huge success for both him and the team.
Opening the innings alongside Rohit Sharma, the impetus has mainly come from him at the start of the innings.
He also displayed consistency, finishing the league stages as the leading run-getter for his team. De Kock scored 529 runs in 16 games with 4 half-centuries and a strike rate of 132.
Kagiso Rabada
Kagiso Rabada showed why he is worthy of the hype around him, taking the IPL by storm after having missed the previous season with injury.
The South African fast bowler, still only 23, led the way in Delhi's consistent showing in the league stages with 25 wickets in 12 games before he returned home early because of another injury.
Though he produced many special deliveries, his inch-perfect yorker to clean up Andre Russell in the Super Over against KKR will go down as the Ball of IPL 2019.
Rabada was equally effective early, and in the death overs. He tore through the RCB batting line-up, taking 4/21 including the key wickets of Virat Kohli and A B de Villiers.
He repeated the showing, picking up 4/22 against Sunrisers, dismissing the dangerous David Warner to bowl Delhi to a 39-run victory.
Jofra Archer
The cricketing world is waiting for the Barbados-born all-rounder's seemingly boundless talent to explode on the big stage.
Jofra Archer was one of the few bright spots in an otherwise disappointing Rajasthan Royals campaign.
He shone brightly, bowling at express speeds, hitting batsmen of Dhoni's calibre on the helmet, also showing the ability to knock out batsmen as well as tie them up, finishing with 11 wickets and an economy rate of 6.76.
Imran Tahir
At 40, Imran Tahir still keeps taking wickets and setting off on celebratory runs as passionately as a teenager.
Like old wine, the South African keeps maturing and enhancing his worth to the game.
Tahir made the most of playing in spin-friendly conditions at his home ground in Chennai. He finished as the top wicket-taker in IPL 2019, picking up 26 wickets from 17 games.
His tussle against Andre Russell was short but fascinating, as he quietened the big giant with his trademark guile and deception.
The KKR dynamo wasn't the only batsman to be flummoxed by Tahir's trickery. The leggie proved to be very difficult to score off, and his impressive economy rate of 6.69 was testament to that.
All Photographs: BCCI
After IPL triumph, Pandya wants to win World Cup
Dhoni run-out was game changer: Tendulkar
How Rohit's advice helped Malinga bowl MI to victory
'Ageing' CSK will look to rebuild team: Fleming