The architecture for the Ooyala Flex utilizes a micro-service approach. The whole Ooyala Flex system including Ooyala Flex Enterprise, Events, Authorization, MAM, and Web Transfer are containers, and it is entirely up to the client how they want to run those containers. The main advantages of this micro-service approach are as follows:

  • The architecture is fully containerized, and so, there is no fixed architecture.
  • Each client can run the containers in their own configuration, and host them using any provider they like, such as Azure, Amazon Web Services, and so forth.
  • Clients can pick and choose which services they want. A client might only require certain Ooyala Flex services, e.g. Ooyala Flex Enterprise, with just MAM, and Web Transfer.
  • Each container is elastic, meaning that they can grow and shrink in size.

Note: If a client decides not to host themselves, then Ooyala will choose to host using Amazon Web Services by default.


The diagram below, gives you a high level overview of the Ooyala Flex architecture. You can see how Enterprise, the Admin Apps, End User Apps, Services, Data Services, and Configuration Store sit together.

Note: This diagram may be subject to change as and when new services are added to Ooyala Flex.

Note: Core was previously known as "Enterprise".

An Overview of the Key Components


  • Events: This manages persistence and retrieval of Events to and from Mongo DB.
  • Index Elastic Search: An Indexing service built on top of Elastic Search.
  • Search: An Object search service built on top of Elastic Search.
  • Identity: This provides User permission information used for result set filtering and authorisation.
  • Stream Processor: This wraps FFMPEG for transcode, frame accurate clipping, technical metadata extraction, MP4 file stitching.
  • Metadata Update: Bulk metadata update service.
  • Authentication:. This service provides user authentication and management functions. It controls login capabilities, administers User passwords, and generates access tokens.
  • DIVArchive: DIVArchive Service is a external resource service responsible for integrating DIVA Oracle systems for the purpose of archiving Assets. This includes the following actions: archive, restore, delete.
  • LMPP: This service breaks down a large XML manifest into a number of smaller XML manifests.
  • Metadata Merge:This service is responsible for merging all Metadata instances of the updated metadata definition.
  • Outbound Transfer: This service works via an external copy Action, which copies an Asset to a remote location.
  • Publish:The Publish service is used to publish Assets (videos, images or text), Metadata and HTML5 players into NAS suitable for the streaming via the Ooyala Flex Platform.
  • Image Proxy Service:  This service enables images in MAM to be resized to a given height in accordance with where they are being viewed.
  • Tag Service:  This is a small node.js service that manages the addition and deletion of tags that have been applied to Assets in MAM. It saves and retrieves those tags from MongoDB and then publishes the addition and deletion of those tags to RabbitMQ.


  • MAM: This is a Media Asset Management tool, with enhanced UI, Metadata curation, search, and in-browser rough cut editing features.
  • Workflow Designer: A HTML5 based tool which enables you to design Workflows based around your existing processes.
  • Metadata Designer: A HTML5 based tool which enables you to design Metadata to accompany your Assets.
  • Reviewer: A tool which enables you to collaboratively review your uploaded Media Assets.
  • Configuration Manager: A stand-alone tool, which enables you to remotely configure Ooyala Flex environments.
  • Web Transfer: An application which uploads files, inputs Metadata, and triggers Workflows.
  • Admin: This is used to control the log levels of the system. In essence, it is a system health checker, which monitors specific components.