TABLE OF CONTENTS
Introduction
Znode is a .NET platform composed of 4 separate ASP.NET web applications hosted by IIS.
- Znode Api
- Znode Admin UI
- Znode Web Store UI
- Znode Payment API
Technology Stack
All application code (excluding the UI) is written in C#.
Frontend
The Znode frontend consists of two separate MVC applications, the Admin UI and the WebStore.
ASP.NET C# MVC
Razor view templates
Primarily server-side rendered pages
Ajax data interactions
Acts as API Gateway
Backend
The Znode backend is a single WebAPI application, known in the code, simply as the API.
ASP.NET C# WebApi
API resources = Controller classes
API endpoints = Controller methods
Entity Framework for easy SQL DB CRUD
Autofac for dependency injection
Data
Znode persists data to 3 types of database systems, SQL Server, MongoDB, and Elasticsearch.
SQL Server
Normalized system of record for everything
Contains source data to recreate MongoDB and Elasticsearch data
MongoDB
Stores denormalized products and content for speed and scale
Elasticsearch
Supports product search
Deployment Architecture
This diagram shows what a typical Znode deployment looks like.
Logical Architecture
This diagram shows a different view of the system, emphasizing the strict layering of responsibilities.