1. Home/
  2. Blog/
  3. Creating the Cognitive Mill platform architecture

Creating the Cognitive Mill platform architecture

Creating the Cognitive Mill platform architecture

It took us quite a while to create Cognitive Mill™ and develop its philosophy based on our custom combination of AI and cognitive features, diverse products, pipelines, and integrations.

And I bet you've already heard about it, at least.

But what is the backbone of Cognitive Mill™ that empowers it to efficiently cope with various business cases?

This article is about the cloud platform, the complex system that puts everything together: assembles multiple AI and functional modules into pipelines, helps orchestrate them, and keeps them in tune.

The infrastructure we needed

Our AI team had already created the core consisting of several ready-to-use modules.
Then we started to think about how to productize our multiple AI modules and enable them to process various videos. This would make it easier for the companies that work with video content analysis in the media and entertainment industry to automate their routine tasks.

We needed a platform that could help businesses automate the most boring and time-consuming tasks.
We needed a platform that could help businesses automate the most boring and time-consuming tasks.

Cognitive Mill™ needed a backbone — the cloud platform that could enable and support the well-coordinated work of all the modules and pipelines.

Usability was one of the key problems that we tried to solve. The platform was supposed to be convenient for both parties, our clients and the team.

We wanted to create a cloud infrastructure for fast, flexible, and scalable processing of big volumes of video and other types of content.

Non-functional requirements

Thus, we developed our non-functional requirements, among which are the following critical ones:

  • Flexibility
  • Extensibility
  • Usability
  • Efficiency
  • Scalability
The platform was created with the following requirements: efficient performance, which means the system works fast and supports high load, flexibility, usability, and scalability.
The platform was created with the following requirements: efficient performance, which means the system works fast and supports high load, flexibility, usability, and scalability.

Flexibility and Extensibility

The platform definitely needed the flexibility to be able to adapt to various business cases, support clients’ integrations, and run multiple different pipelines simultaneously. Being dynamic and evolving, the platform needed to be extensible. So the implementation of new features could be fast and easy.

Usability

And, of course, a user-friendly system was a must.
The team’s goal was to create a platform that was easy and convenient to use. Thus, together with the API, our team created the UI to make clients' experience as smooth as it can be.

We also have the admin web app for the team to support the running processes and quickly deal with possible issues.

Below is a short overview of the admin web app.

A quick guide on the admin web app.

The User tab allows the team to see all the registered users, accounts, and admin users.

The Platform button gives access to all processes and allows authorized users to view process details, such as its current status, stage, modules, etc.

The screenshot below shows detailed information about a running Cast Meta process.

The admin web app page example showing the modules running at Stage 3 of the Cast Meta process.
The admin web app page example showing the modules running at Stage 3 of the Cast Meta process.

The Cognitive Mill™ admin web app also displays the analytical data.

The general information about the pipelines, modules, and module scaling can be found in Infrastructure.

The Billing section, alongside the accounts’ billing information, displays quotas for processes by accounts and free trial quotas.

Efficiency and scalability

Performance always matters. Video content that the system was supposed to process and analyze might be heavy and complex. The processing time should be fast without compromising the quality of the cognitive analysis. And the platform had to support multiple processes running simultaneously.

In addition to that, the platform should adapt to the changes in load by scaling its performance to reduce cost and system downtime.

These requirements stipulated the future platform architecture.

The Cognitive Mill™ platform architecture

The team had to organize the interaction of multiple services and components and make it in the most performance- and cost-efficient way.

So the event-driven architecture was chosen as the one that could meet our needs and the requirements mentioned above.

The decision turned out to be smart and convenient for the business cases we had to solve.

Various services that sometimes don’t even know about each other communicate via events.

Below is the diagram displaying the three layers of the Cognitive Mill™ infrastructure.

The diagram of the Cognitive Mill™ platform components and services.
The diagram of the Cognitive Mill™ platform components and services.

The External layer is where the platform interacts with the outer world: us, clients with their infrastructures and middlewares, etc.

The Processing layer is where the media segments get analyzed by corresponding workers.

Several groups of workers function as ‘eyes’ that analyze visual content, ‘ears’ that process audio information, and ‘brain’ that is responsible for cognitive decision-making.

The Controlling layer encloses multiple microservices.

For example, Orio controls media segments and updates segment status information.

Clara is responsible for controlling process preparation.

Qbit controls the processing flow and the Kafka messages concerning processes to record the corresponding changes in the database.

Zoolu is responsible for cognitive pipeline management and Kubernetes monitoring.

Rovar helps fine tune the UI.

Nucleo collects analytical data.

Mill is the service that puts the segments that should wait for a worker into the queue, and the queue distributes the segments between the available workers.

These are our custom names, so don’t try to google them.

All platform events get registered in Kafka, which functions as the main communication center. And services subscribe to Kafka to get notified when, for example, a corresponding service sends a message about the status of the required segment.

So the services are not linked to each other directly by a chain of subsequent operations. They don’t have to wait for calls from other services. They can simultaneously perform their tasks and send messages to Kafka when the operation is completed or failed. And the services to which it may concern read the message and move on to the next stage.

We gather analytical data on the performance of each worker and system component to analyze their efficiency and optimize work.

Achievements in numbers

The sky's the limit. But we’ve already managed to create a cloud-based platform that satisfies such vital system requirements as efficiency, scalability, usability, flexibility, and extensibility.

And here are some impressive performance results to be proud of:

  • We’ve created 56 AI and functional modules that are enough to build and efficiently run 29 different pipelines.
  • We can develop a new custom pipeline within 4 hours.
  • The platform can process 1000+ video assets per day.

And we’re on the highway to new achievements and even more impressive results. For more information, contact us at support@aihunters.com, and don’t be shy to try out how the platform works at run.cognitivemill.com.

Stay tuned and create while the cognitive automation platform is doing the grunt work for you.

Related Insights

Read all