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.
After few years of working on other projects and experimenting we decided to use microservices architecture.
- 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
- 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
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 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
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.
- Request routing
- Access control
- Centralization of events and real-time communication from multiple services to single client (web hooks, websocket, server push events)
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.