There is a forum module availabel in the appstore, but this has been build on an older Mendix version and I’m not sure this is what you exactly need, but have a look https://appstore.home.mendix.com/link/app/39331/Kinetech/Forum-Module
A simple solution could be to create a Message entity with a association to the user that you set when the user creates a message. Then you can display all messages from a user and with the help of the createdDate system field you will be able to sort the messages.
For the mentions function you could create a microflow that finds the @-characters from the string, Use the string behind the @-character to see if a user exists with that name. If found you could populate a second association to the user (*-*). Then the message record will have the realtion to the user that created the message and the users that are mentioned. With some xpath constraints on the listview or on the access rules (the more secure option) you can show the messages from the user and the messages where the user is mentioned as a timeline.
Hope this gives you some ideas on how to implement this functionality.