Cyrex’ Development Stack Explained
11 February 2021
The digital world and its tools are complex and fast-paced. The tools in use change, evolve, and update with a staggering speed. Older companies must digitise and companies with older code or technical stacks must work to keep up to date. Not just for themselves, but for their clients and the most efficient workflow.
At Cyrex, we use an array of tools, for ourselves and our clients, to stay at the top of the game. When it comes to these tools, performance is key. We look at performance, flexibility, scalability, and manageability when making our decisions. These are paramount in our development cycle and directly pass over to the user experience.
Handling big data does not mean you have to slow down. We like to build platforms based on handling any amount of data, without sacrificing performance.
Angular provides a higher quality of cleaner code with high scalability.
This is one of the few front-end frameworks to achieve the maximum speed possible on the Web Platform today. It goes one step further, via Web Workers and server-side rendering. Angular puts you in control over scalability and more importantly enables you to meet huge data requirements. The older technologies available for front-end frameworks are slow in comparison.
Also, as a framework, it acts as a guideline. Angular offers an excellent structure to work with and to build on top of.
PHP Laravel is similar to Angular in that it is also a framework.
Laravel is the best PHP framework as it has ‘Object Oriented’ libraries and other pre-installed ones, which are not found in any other PHP frameworks. It allows operations to be much faster. In addition, the communities based around its use offer huge resources of methodologies. This allows faster builds with templates rather than scratch building.
A community offers huge support in almost every way and ensures that it will evolve and stick around for many years to come.
Protobuf or Protocol buffer is, as you may guess, a protocol we want to use.
In layman’s terms, when the user requests or clicks something on your web app, the back-end responds to that request. It sends a ‘packet’. That packet contains data and is typically sent in JSON which is an excellent format. Protobuf compresses your data into a smaller, more manageable packet. Effectively, this means you send a smaller packet faster. In sending and response, it’s reported to be six times faster than JSON.
This protocol offers better performance, better maintainability, and smaller size. Thus, using Protobuf allows you to build applications with faster network communication.
GraphQL allows making multiple resource request in a single query. It bridges the gap between front-end and back-end API communication. Simply put, it saves a lot of time and bandwidth by reducing the number of network round trips to the server. Check out our article here to see a more in-depth exploration of GraphQL.
Kubernetes marks a breakthrough for developers because it allows teams to keep pace with the requirements of modern software development. Using Kubernetes allows us to derive maximum utility from containers and build cloud-native applications that can run anywhere, independent of cloud-specific requirements. We have an article here, with a comprehensive explanation of Kubernetes and its benefits.
MySQL is a relational database, it’s not too new either! It has been around for a long time and will likely stick around for longer still. It is the world's most popular open-source database as it provides comprehensive support for every application development need.
It’s simply an excellent and reliable database management system with numerous benefits. These include renowned data security, on-demand scalability and flexibility, and high performance regardless of the demand put on it.
Elasticsearch is a highly scalable, open-source, full-text search and analytics engine. It allows you to store, search, and analyze big volumes of data quickly and in near real-time. It is generally used as the underlying engine/technology that powers applications with complex search features and requirements. To learn more, we published an article on performant data and Elasticsearch here.
Redis is a great choice for implementing in-memory caches to decrease the latency between data access and delivery. In our experience, Redis can frequently deliver requested items in milliseconds, enabling our clients to scale for larger loads without risking extra back-end costs. Caching repeated and frequently used images or files is an excellent example for Redis. These files won’t change between requests, therefore keeping them cached means little to no wait time for your end-user.
Each of these tools has been chosen and utilised to offer only the best to our clients. We prioritise performance, flexibility, scalability, and manageability for our work. With these as our mindset, we can offer, not just the best performing apps, but ones that can scale. No matter the number of users, we can build up from old code and ensure the user experience is never compromised.