Xillio API provides a unified interface to content management systems for developers. This API is so consistent that once you develop an application which integrates with one of our connectors, all other connectors work as well. This way our users no longer have to worry about connectivity and can focus on their core business: translation, archiving, analytics, migration, and many more different use-cases.
Technology
We developed the core connector engine as a stand-alone Java 11 library. This allows us to embed it into multiple products. For the platform we wrapped it in a Spring Boot application which exposed an OAuth2 secured REST API and stored all state in a PostgreSQL database.
To provide additional functionality such as text extraction, classification, and custom user-developed scripting, we developed a set of microservices using Go and NodeJS. These services communicate with the core API over RabbitMQ.
All code is unit-, integration- and end-to-end tested automatically upon commit. If all tests pass on the master branch, a new deployment is automatically created as a 'shadow-copy' of the current production environment. Then Jenkins starts a suite of system tests to make sure all services are operational before automatically switching the load balancer to the new environment. Live production monitoring allows us to inspect errors and traffic metrics. If anything is off we can roll back to the last stable version. All this allowed us to do multiple deployments per day without any downtime.