What is Platform Architecture in Computer Science
A platform architecture is an abstract high level design of the platform that answers to some of the key important factors of any platform like scalability, resilience, maintainability. It should cover almost all important big modules, multiple apps, all the servers, databases, caching, third party solutions and etc.
A platform should be ever evolvable, should be able to adopt to the new changes and needs of the platform and it helps to meet all technical and operational requirements with focus on optimising performance and security.
Desirable Properties of Platform Architecture
- High level of Abstraction – It should be simple enough and comprehensive enough to get high level of understanding
- Resilient – Each major module (app) should not be get affected so much due to one defective app
- Scalable – Architecture should consider the scalability of the platform “Scalability” refers to the number of users, sessions, transactions, and operations that can be accommodated by the entire system
- Maintainable – Should be able to make changes to any part of the system without breaking or damaging too much to other parts
- Ever Enhancing – it should be able to evolve every-time when there is a need of change
Important Aspects to focus on while designing platform architecture.
- How many servers we need to maintain, is it per app level or every major functionality
- How caching is handled in platform
- API Gateways for API security, metering, throttling
- Searching functionality within the platform
- Users and Identity Management
- File Servers
- Third Party Services if any
- Data query and Manipulation for faster data access like using GraphQL
- Communication between each apps or each servers using event queue, event bus or intermediate app whichever way it is
- Handling batch processes using cronjobs or cloud functions
- Data mining, AI System