Metro Inbound is a web application that simplifies the life of the people at Metro who negotiate prices with suppliers, and those who ensure the quality of price data. It automates some error-prone workflows where previously people had to interact directly with databases, and had to sift through spreadsheets, and e-mails.
The application is specifically designed for continuous delivery & deployment. All its services are stateless, and can be replicated – scaling the app to changing demands is simple. Automated integration tests validate each change to the code base. Running in a corporate environment the Inbound app has to interface with several legacy projects, and make do with the existing infrastructure. It needs to be resilient to failures of systems outside its own scope. Last but not least its software architecture and code allow for efficient maintenance over a long life cycle.
The backend consists of micro services implemented with Java8/Spring-Boot, and Node.js. It persists data to a Cassandra DB, and uses SOLR for indexing. All services are dockerized, and run in a Kubernetes cluster at the client site. The UI is based on React/Redux.