DreamTeam Dev Blog

in altcoin •  7 years ago 

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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

Upvote this notification to help all Steemit users. Learn why here!

@andyboom Nice to meet you on Steemit!)

I have Dreamteam tokensXD

Congratulations @andyboom! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

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:

The new SteemFest⁴ badge is ready
Vote for @Steemitboard as a witness to get one more award and increased upvotes!