Modern backend software architecture
In some situations, using products such as a CMS or e-commerce system is just not suitable. This is usually the case when expanding particular USPs. The products we use can usually be easily customised but, in special cases, this is not always financially viable. The decision for or against bespoke development essentially depends on the number and complexity of the adjustments needed.
Individual solutions have the reputation of being expensive and time-intensive; this is usually because, as well as developing existing features, which are often available in standard products already on the market, maintenance and support costs must also be taken into account.
However, when properly done, the costs and effort are rewarded with a higher ROI. Our clients can therefore better build on their current, specific strengths and competitive advantages long-term through a perfect representation in the digital world. As part of our consulting service, we constantly check the cost-effectiveness of adapting a product.
Our service: successful projects with new technologies
Here, the key success factors are the right approach and experience with such projects. Agile software development and our broad experience with current frameworks and technologies ensure that our clients complete projects successfully.
An increasingly common feature of individual development is uniting several systems (Best of Breed). Our partners' products typically cover many of our clients' needs. However, competitive pressure and the need to differentiate from the competition can be so great that a single product is just not enough. This is very clear using the example of content-driven e-commerce (Content Commerce). There are very suitable products for both disciplines – CMS for content on the one hand and Shops for retailing on the other. To take advantages of the strengths of these products, such as profitability and speed, we have specialised in combining them together. Over the years, in close collaboration with the manufacturers, we have developed components and modules to combine these systems and unite the strengths of both worlds. A striking example of such a case is an e-commerce search engine that takes content from multiple systems. In this way, we guarantee the best possible user experience for our clients’ customers.
Our tools: automisation using container technology
We always combine systems and frameworks with modern software architecture. Here, data is integrated uncoupled via an Enterprise Service Bus (eg. using Mule or Camel combined with ActiveMQ), data is provided via RESTful webservice for the frontend and a full text search with all the associated advantages is provided by ElasticSearch.
With our many years of experience in modular software, the modern approach to the creating microservices has quickly become second nature to us. For these services to go live quickly, a high level of automation is required. We therefore use container technologies such as Docker in conjunction with Jenkins. Server provisioning tools such as Ansible are well known to our developers as they build the development environment and are used in many situations.
Automatically bringing artifacts into production requires high quality software. We guarantee this through comprehensive, thorough testing. In addition to unit tests and integration tests, we also create early performance tests (jMeter or Gatling) to test the system at an early stage for any requirements that are not performing. We identify regressions with meaningful web test modelling. Automated deployment only makes business sense in conjunction with this complex safety net.
Microservice systems must also be monitored and implemented resiliently. This means: If any of the services fail, the system must remain operational for the customer until the failed service is – usually automatically – restored. Here, frameworks such as Netflix stack are used for diva-e projects.
But many of our projects are also run directly in the cloud. Depending on the project, proprietary services such as Amazon Web Services or Microsoft Azure Cloud Services are used.
For all these requirements, we often use the very flexible and widely used Spring Framework. Our developers are also very familiar with Java enterprise environments. However, we engage with these technologies less and less as they are increasingly being replaced by lightweight microservices.