Two nights ago my boyfriend and I went clubbing together, we ended up in a gay club (this detail becomes relevant later dw) all was going really well and having the best time, we're both very extroverted so were making lots of new friends and dancing with other people. Me being drunk, I kind of lose him for a minute so I just dance with this guy, I'm not sure how long for but it wasn't a full song. It wasn't sexual at all, like I said it's a gay club and I'm pretty sure we were the only straight ones in there, and this guy was very camp.
Apparently, someone said to my boyfriend, what's your girlfriend doing? He looks over at me so I go over to give him a hug, and that was when he shoves me. It wasn't super hard and didn't hurt at all, but enough that someone caught me. I walk out the club in complete shock, he's always been the sweetest person and never shown any signs of aggression in the year we've been together. Me being drunk and emotional, I start crying, we end up calling it a night. He's also crying and apologising constantly. He takes full responsibility for what he did, I reccomended counselling which he agreed to immediately and sent an email to an old counsellor I used to see as she's really good and much cheaper than most. This ordeal's been really upsetting for me because before him I was with an emotionally and physically abusive person, he offered to pay for my therapy too, since I can't talk about this with any of my friends or family.
I want to explain his side quickly so that it's more fair: his ex from a few years ago cheated on him quite a few times and he has trust issues surrounding that stuff, jealousy's been the only real issue we've ever had in an otherwise very strong relationship. Someone asking him what I was doing made him think I was getting off with someone in front of him, he also felt like I was pushing him away and didn't want to dance with him which upset him. He doesn't try to justify what he did, that's just how he explained why he did it. He says that he's never been violent to anyone before which I believe but it upsets me that the only person he's ever been aggressive with is me. I feel like after my previous experience, and just my logical brain is telling me that these things are never isolated incidents and they always escalate into something more serious.
On the other hand, he's aware of his issues and wants to get therapy so he can change for the better. He understands I'm angry and upset at him and it will take some time before I'll be comfortable around him again, he's never blamed me (which my ex did a lot) for what he did, and I genuinely believe he feels awful about it, the morning after was the most upset I have ever seen him. I guess because I can't really talk to anyone in my real life about it, this is why I'm here. Am i doing the right thing staying with him?
Another detail is, we're currently long distance but he's about to move to London which is quite close to me and as I work from home, we were planning on me crashing at his flat a lot (I don't make enough to properly move to london comfortably) I've told him I want to stay long distance while he works on himself. Sorry this is so long, any insight would be really appreciated.