The system can have 1000+ Badges where each Badge can have multiple Rules.
Badges and Rules are created by Admins so that means Admins can create as many as they want.
Rules can be created and assigned to Badges.
Rules can be as an example
(User has made 10 Posts)
(User has made 100 Posts)
(User has made 5 Comments)
(User has made 50 Likes),
(Posts from England),
(Posts from shop Kaufland)
(Last 10 days)
So that mean a Badge can have multiple Rules.
As an example
(User has made 10 Posts) and (Posts from shop Kaufland)
(User has made 100 Posts) and (Posts from shop Kaufland) and (Last 10 days)
Lets see a workflow example
User wants to create a Post and he clicks the Post button.
The Request is sent and system should find out which Badges can be assigned to the User for that Post.
Of course we can NOT check 1000+ for each Post and query the DB to find out which Rules match.
So the system should check which Badge can be assigned to the User for that Post or Comment or Like e.t.c.
and return in Response the assigned Badges.
Keep in mind that the Badges should be assigned to the User synchronously when a User makes a request and response should include the won Badges.
The functionality is the same does [login to view URL] . Please make an account and a first test check-in to see the Badges assigned to you.
What I want is: a practical explanation about how this Badge system can performant work and with which technologies.