Introduction & concept

META Platform provides ecosystem of software products, tools and libraries to build rich web applications and backend solutions based on micro-services architecture.

Motivation

Motivation of developing META Platform is to build ecosystem which helps developers to create rich and dynamic web applications. It focuses on both back-end infrastructure and front-end applications.

There are tons of cool frameworks out there...

We are developing META Platform simply because we need it in our own company. Yes, there are cool solutions out there but our needs are very specific and we think that other developers with simmilar requirements exists.

Continue reading to learn more about our concept.

Under heavy development

META Platform is under active development and following sections describe mainly concept. Development status each component is listed on respective documentation page.

Microservices architecture

After few years of working on other projects and experimenting we decided to use microservices architecture.

Monolithic applications

  • Great for desktop
  • Difficult to maintain growing code
  • Difficult to react on changes
  • All components must use same language and interface
  • Big point of failure - application crashes and system is down

Microservices

  • Each application component is a independent service
  • Each service is standalone application
  • Different services can use different programming languages
  • Easier scalability
  • Agile friendly
  • Durability - when one component crashes others still running

Infrastructure

Using microservices architecture brings some difficulties such as orchestration and deployment of services.

Because each service is stand-alone application we can deploy and manage it manually. But imagine that you have tens of services you have to manage and they are on multiple servers.

We are introducing...

META Stack

META Stack is backbone for our platform. It takes care of deployment and orchestration of microservices across multiple servers.

Stack is using multi-master architecture which simplifies deployment of new cluster nodes and eliminates single point of failure.

Stack offers following features:

  • Shared cluster configuration
  • Shared event bus (pub/sub pattern)
  • Service registry
  • Service deployment
  • Dynamic distribution of services with respect to node loads
  • Automatic failover - start services on different node

META Gate

You want to provide single connection point to clients and when you have many independent services you must solve this situation.

META Gate is services which acts as proxy and routes client requests to specified services. It also acts as a firewall and provides simple way to manage access rules in one central place.

Gate provides:

  • Request routing
  • Multibalancing
  • Access control
  • Centralization of events and real-time communication from multiple services to single client (web hooks, websocket, server push events)

API

META Platform consists of many different products and services which need to communicate together.

We created API specification which defines universal communication protocol based on HTTP REST.

Read more about META API.

Libraries

During META Platform development we created various libraries and JavaScript modules.

  • META Doc - documentation generator used to create this site
  • META Logger - JavaScript logging library with support of facilities and multiple transports
  • META Shared storage - JavaScript library which provides synchronized key-value storage