Hi, this is Mustafa Seyrek, CTO of DreamTeam - the world’s first infrastructure platform and payment gateway for esports and gaming. Our tech team is making some great strides on the development side, utilizing latest technologies and more. So, I believe, that DreamTeam fans might enjoy getting to know more in-depth details about our technological innovations. Thanks to our cutting-edge approach DreamTeam unites the esports ecosystem and offers a unique solution to create a one-of-a-kind platform for players, teams, tournaments, and sponsors. DreamTeam provides all esports fans with a multitude of tools for team management, sponsorships & media right sales, prize money payouts, and monetization options through the DreamTeam Token.
This is my first blog entry for you to enjoy and acquaint yourself with our approach to the new search experience that will help esports enthusiasts to find each other. This is is something that was unavailable on a large scale in the gaming industry and with it we will unite the whole ecosystem around the DreamTeam platform. And as DreamTeam has taken the task to become the global infrastructure platform for gamers, this advanced search feature will surely further this goal.
New Search Experience for the DreamTeam Platform
The key for the infrastructure platform that's going to help gamers find each other is the Search feature. Similar to Linkedin or any other networking platform, it's very critical that we deploy a robust architecture for our Search. To accomplish this, we have decided to use the Elasticsearch engine on our platform.
As you can see in the diagram above, the search process starts with the implementation of the MessageBus pattern to communicate between our system services. Essentially this means that any service inside the system can generate particular events, and other services can react to such events. For example, the search service indexes the data by receiving events from the entire system. Among such events can be: user registration, team creation, etc. To realize this event-related model, we’ve used the advanced RabbitMQ message broker that allows for an easy and effective interaction.
Secondly, we should talk about the Updates Consumer that listens to the MessageBus and awaits a relay of events from it. When the Updates Consumer receives the expected event, it passes it to the specific Update Handler, that knows what to do with the data that came in, and consequently it updates the relevant indexes. For example, a user registered and joined a team. In this case, the index of users and teams is updated.
Each index has a Document Manager that works with the corresponding index and has a specific logic. Document Manager contains a connection to the Elasticsearch from within (with all the relevant credentials) and the index Schema that holds mapping, replication quantity and so on.
When a user tries to find something in the system, his request is validated and transformed into the intrasystem objects. After that, the search object is passed to the filters/sorters/paginators, and they generate an Elastic Query. The Elastic Query is then sent to the Elasticsearch and we immediately get the results of the request. The chosen search method gives us the opportunity to create indexes in a flexible and optimal way and search any data structure required.
As the data structure in the Elasticsearch comes from the events from the MessageBus, we can generate any type of data structure to work with the DreamTeam platform. This allows us to optimize the search time and the data set that the end-users expect from us. If we chose to use the relational databases, we would have to build complex and sometimes long queries to allow this.
Elasticsearch also unlocks totally new capabilities for our platform by offering more accurate search and filtering of any Player Profile record as well as the possibility to enable advanced premium features like Promoted Profiles & Vacancies. Also, the Elasticsearch gives us a flexible way to work with Full-text indexes, which will be potentially beneficial to our system.
And with its Full-text index in place, Elasticsearch will ensure the return of the most accurate search results for the user, whether it's a search for another team player, another team, etc. Using Search clusters also ensures that we get the results as quick as possible.
This infrastructure will be in place in the upcoming weeks, and once it is fully verified in our QA environment, we will offer it to all of our 250K+ players that are part of the DreamTeam network. Once we make this feature available, don’t hesitate to give a try to our updated Search capability. Your feedback is much appreciated so we can improve our platform experience.
In the next blog post, we’ll talk about our efforts of moving to SPA (Single Page Application) which has improved our web platform performance.
Feel free to comment and leave your feedback below for a great tech discussion!
Mustafa
Congratulations @andyboom! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You published your First Post
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@andyboom Nice to meet you on Steemit!)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I have Dreamteam tokensXD
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @andyboom! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit