Day 2

How can I be sure the war is not coming?

By using sentiment analysis of Cortana cognitive services, we are able to detect moods. We aggregate all the messages incoming to a kingdom and by weighting the newest highest, we create a risk of war. This is coming as a percentage

  • Trend – What is the risk only counting the latest messages
  • Average – If we consider all the messages, what is the risk

Together with number of messages this calculates a risk of being engaged in a war for a kingdom.

This is done by translating messages to English and then feed them through Text Analytics API to get the mood.

Tampering messages

To prevent tampering with the messages, we have implemented functionality for hashing each message with MD5 hashing algorithm and adding it as a property to itself. We then use this to compare them and detect if the message has been modified by any evil beings.

Securing Keys and Connection Strings

We use Azure KeyVault to secure the keys and connection strings we use in the solution. Only Azure AD application has access to read the keys.

WebApi Updates 

The Api has been updated with functionality for updating entries in Cosmos DB. We use client.UpsertDocumentAsync in a Put method and use the
message id to identify the message to be updated.

An additional Get method has also been implemented for filtering messages. Filters include messages by the senders accociation to their Kingdom, messages
by languages and accociation to receivers Kingdom, as well as filtering by priority.

Event Grids

We use Event Grid to emit message and mood event. Azure Function and WebApi subscribe to these events to process messages and generate average and trend of possible war against kingdom.

Site Script Generator

We have a SPFx webpart that can generate Site Scripts

Kingdom Messaging Centre

Each kingdom is represented by it’s own tenant. By using a Sharepoint framework
webpart, the kingdoms can view all messages they have sent and received. This webpart makes an API call to the database and retrieves all messages for the respective kingdom and displayes them in a table.


Digital Transformation to GOT World

Raven Messages

Raven Messaging System is SaaS application which is open for all Kingdoms in this world.

Raven service registers Kingdom information in temper resistant database (RTRS, more info will come later).
Users can communicate with other Kingdoms as cross-kingdom communication. An open cross-tenant communication!

This kind of communication is defficult in this world. Dothraki and the others don’t understand each other.

AI to the rescue

Having a common ground is important if you want to talk to another kingdom!

At least you need to know if it is polite or aggressive.

Using API you can detect a lot and translate some languages.

We use it to translate “some” to english using TranslateOptions so we can choose what we see at the best translation.

This is going to be the basis for segmentation into “good, bad and the ugly” messages!

SharePoint Framework WebPart displays messages and status where it shows if the message is good or not.

Simple & easy to use app

The service has a native mobile app. Users can download from all AppStores (Play and Apple, The code is open source at

WebApi & CosmosDB

We are developing a WebApi for reading and writing data to Azure Cosmos DB. We have a collection for “Tenants” and one for “Messages”.

The mobile application sends POST requests to the WebApi containing a new message as well as the current tenant information and the API creates a new entry in the Cosmos DB collection.

Follow our progress on Github: