1. NORDMART

1.1 Overview

Nordmart is an e-commerce application built using Spring Boot, WildFly Swarm, Eclipse Vert.x, Node.js and AngularJS adopting the microservices architecture.

1.2 Microservices

Nordmart Application consists of following microservices:

  1. Web: A Node.js/Angular based front-end. Details can be found on this link (opens new window).

  2. API Gateway: Vert.x service aggregates API calls to back-end services and provides a reactive REST API for front-end. Details can be found on this link (opens new window).

  3. Catalog: Spring Boot service exposing REST API for the product catalog and product information. It uses MYSQL Database. Details can be found on this link (opens new window).

  4. Inventory: WildFly Swarm service exposing REST API for product's inventory status. It uses Postgres as the Database. Details can be found on this link (opens new window).

  5. Cart: Spring Boot service exposing REST API for shopping cart. It uses Postgres database. Details can be found on this link (opens new window).

  6. Review: Spring Boot service exposing REST API for reviews on Products. It uses MongoDB as database. Details can be found on this link (opens new window).

  7. Search: Spring Boot service exposing REST API to search products. It uses Elasticsearch as the Database. Details can be found on this link (opens new window).

  8. Customer: Spring Boot service exposing REST API to manage customer profile. It uses Cassandra as the Database. Details can be found on this link (opens new window).

1.3 Shared Backing Services

Tools given below are being used in microservice:

  1. Keycloak: Nordmart uses Keycloak to authenticate a user and get the Customer Profile. A user can go through products but he would have to Sign in to purchase an item.

  2. Kafka: Nordmart uses Kafka as the message broker, whenever a CRUD operation is performed in Catalog, it sends the message to Search Service using Kafka.

1.4. Architecture

1.2.1. Architecture diagram

nordmart architecture

1.5. Application Views

There are two views of the application

1.3.1. Home page view

homepage

1.3.2. Cart page view

cart