Skip to main contentIBM Cloud-Native

Inventory Application Summary

Describes the inventory management solution end to end

Inventory Management Application Summary

Inventory management application is a Micro App which is built using three-tier microservices architecture. Each tier encapsulates a clean separation of concerns. Each app component will be modelled using microservices and use a number of polyglot programming languages and frameworks. Inventory management application consists of following:

Architecture

Develop basic services (Part of Developer Intermediate Journey)

  1. Inventory service: Inventory service is the backend component of the solution. It is written in java and is based on Spring Boot framework. Springboot is an open-source Java-based framework used to create micro-services. Unit test cases are also written as part of the application.

  2. Inventory bff: Inventory bff is the backend for frontend of the application. Backend for Frontend is a unique type that fills the design gap inherent in the process.BFF, in simple terms is a layer between the user experience and the resources it calls on.The Inventory BFF’s role in the architecture is to act as an orchestrator between the core business services and the specific digital channel it is focused on supporting. GraphQL is used in this layer of application, which enables the API to be dynamically controlled from the client using API queries. It is developed in typescript. It consists of implementation with mock data so that it can be tested independently.

  3. Inventory ui: Inventory UI is the frontend of the inventory management solution. React js is being used to build the UI.It consists of a service to get mock Stock items. It also has a service which calls the BFF.

Enhance Inventory application (Part of Developer Advanced Journey)

  1. CD for inventory application: In this part, the inventory application is extended to include continuous delivery to test. ArgoCD is being used for continuous delivery. ArgoCD is a declarative, gitops continuous delivery tool for Kubernetes.ArgoCD is being used to push the Inventory app from “dev” to “test”.Helm repository URL is taken from Artifactory. ArgoCD application is created. This application needs to be created sepeartely for all 3 components (svc,ui,bff) of inventory application. CI pipeline is hooked to CD pipeline using a secret and config map.

  2. Securing Inventory App with App ID: We are using IBM Cloud App ID to secure our application.IBM Cloud App ID allows you to easily add authentication to web and mobile apps with zero code changes and no redeploy required. It is implemented in Inventory UI component such that authentication is needed for accessing the UI.

  3. Integrating the service to Cloudant: IBM Cloudant is a fully managed database service for hybrid multicloud applications which is built on open source Apache CouchDB with a fully compatible API.It syncs data to any cloud or edge. IBM Cloudant is integrated to our backend such that the application data is stored in Cloudant. This requires changes in inventory svc component.