When scaling web applications and introducing new requirements their complexity increases. Most web applications do not run on a single web and database server any more but include multiple different systems. This may include micro services (PHP, Node.js, Go, …) but also search servers (Elastic Search, Solr, …), queue systems (RabbitMQ, ZeroMQ, …) and databases optimized for certain use cases (Redis, CouchDB, MongoDB, …).
While scaling web applications and increasing the number of systems there are a several problems occurring:
The business cases must be know before the analysis is started or they will be created at the beginning of the analysis. Technology assessment for operations and business is essential to ensure the successful integration of a new architecture. A special focus should always be the modifiability of a system to be able to adapt the system to future requirement changes.
Qafoo can, together with developers and management, analyse what are the current requirements and which new requirements will occur in the near future. An analysis of the current architecture most often already shows the most critical issues.
Possible solutions can be discussed based on this initial analysis. Important criteria for such an analysis are:
To either analyse an existing architecture or create a new architecture a workshop usually follows the following agenda:
When identifying and evaluating different approaches we work technology agnostic. Some technologies have direct consequences on the system properties (PHP vs. Node.js, MySQL vs. MongoDB). Other decisions should be based on the team structure & experience.
We are offering a newsletter with technical articles you can register for right now.
Qafoo executed multiple workshops with small and large customers to find the optimal architecture for the environment of the respective customer. We incorporate technical and business requirements in the process. We especially have a lot of experience with distributed systems with different requirements for data consistency and transaction security.
An architecture workshop should be part of the initial development of a new product so that every stakeholder is aware of the trade-offs. The analysis should especially happen before any data consistencies occurred which might be impossible to repair afterwards. A good system architecture can improve performance, failure resilience, latencies and development speed more than any code refactoring.
Get in contact now for a workshop together with Qafoo to analyze your requirements and create a new architecture or to refactor your existing architecture.