InnovaTech SOA is an omnichannel e-commerce platform that unifies physical point-of-sale (POS) operations and digital web commerce under a single, cohesive backend. Built on strict Service-Oriented Architecture principles, it eliminates the data silos that plague traditional retail systems — where inventory, catalog, and customer records live in disconnected databases — by exposing every business capability as an independently deployable, loosely coupled service behind a centralized API Gateway.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Nelsoncg98/InnovaTech/llms.txt
Use this file to discover all available pages before exploring further.
What is InnovaTech SOA?
InnovaTech SOA is the reference implementation for a modern, service-oriented commerce platform. It was designed from the ground up to serve two completely different retail channels simultaneously:- Web channel — a React 19 storefront that browses a MongoDB-backed product catalog and processes e-commerce orders.
- POS channel — a React 19 point-of-sale application used by physical store staff to register walk-in sales, validate customer identities, and decrement warehouse inventory in real time.
/api/v1/ prefix. Service registration and discovery are handled automatically by Netflix Eureka, removing hard-coded inter-service addresses from every service configuration.
InnovaTech SOA was developed as the capstone project for the Service-Oriented Architecture course (Arquitectura Orientada al Servicio — APF3). The codebase reflects production-grade SOA patterns applied to a real-world commerce problem.
Architecture Principles
InnovaTech SOA is governed by three core design principles that together guarantee domain isolation, horizontal scalability, and transactional safety.Service-Oriented Architecture (SOA)
Every business capability — product catalog, inventory control, customer management, and POS orchestration — is encapsulated in its own Spring Boot service. Services communicate exclusively over HTTP REST, versioned under/api/v1/. No service accesses another service’s database directly. This boundary enforcement means each service can be deployed, scaled, and updated independently without cascading risk to the rest of the system.
Database-per-Service Pattern
Each domain service owns a dedicated, purpose-fit data store:- PostgreSQL 15 handles transactional domains (inventory Kardex, customer records, POS sales) where ACID guarantees and relational joins matter.
- MongoDB 6.0 powers the product catalog, where flexible, document-oriented schemas allow rich product attributes without rigid table migrations.
SAGA Pattern (Compensating Transactions)
POS sales are multi-step transactions that touch inventory, customer validation, and payment. InnovaTech implements the SAGA pattern inservicio-ventapos: each step in a sale is executed sequentially, and if any downstream service returns a failure, the orchestrator issues compensating rollback calls to undo the completed steps. This guarantees eventual consistency without distributed two-phase commits.
The current SAGA implementation in InnovaTech uses the orchestration style:
servicio-ventapos makes direct REST calls to each downstream service in sequence and handles rollback in the same request thread. An asynchronous, event-driven variant using a message broker is a natural next evolution.Service Inventory
The following table lists every runtime component in the InnovaTech SOA platform, its assigned port, backing database, and primary responsibility.| Service | Port | Database | Role |
|---|---|---|---|
api-gateway | 8080 | — | Single entry point for all frontend traffic; handles routing and global CORS |
eureka-server | 8761 | — | Service registry and discovery dashboard for all Spring Boot services |
servicio-catalogo | 8084 | MongoDB 6.0 | Product and pricing catalog for the web channel |
servicio-inventario | 8081 | PostgreSQL 15 | Kardex-based inventory control with logical warehouse segmentation (Web/Physical) |
servicio-ventapos | 8082 | — | POS sales orchestrator; implements the SAGA pattern across inventory, customers, and payments |
api-gateway and eureka-server are infrastructure services with no business logic. They do not connect to any application database. All frontends communicate exclusively through api-gateway on port 8080 — they never call domain services directly.Technology Stack
InnovaTech SOA is built on a carefully chosen, modern open-source stack. Every version is pinned in the Maven POMs and Docker Compose manifest to ensure reproducible builds.| Layer | Technology | Version |
|---|---|---|
| Language | Java | 17 |
| Backend framework | Spring Boot | 3.1.2 – 3.2.4 (per service) |
| Cloud libraries | Spring Cloud | 2022.0.4 – 2023.0.1 (per service) |
| Service discovery | Netflix Eureka (Spring Cloud Netflix) | Spring Cloud 2022.0.4+ |
| API gateway | Spring Cloud Gateway | Spring Cloud 2023.0.1 |
| Relational database | PostgreSQL | 15 (Alpine image) |
| Document database | MongoDB | 6.0 |
| Web frontend | React + Vite | React 19, Vite 8 |
| POS frontend | React + Vite | React 19, Vite 8 |
| Build tool | Apache Maven | 3.x |
| Containerization | Docker + Docker Compose | 3.8 |
Explore the Platform
Quickstart
Spin up the full InnovaTech SOA stack on your local machine using Docker Compose and Maven in under 10 minutes.
Architecture Overview
Deep dive into service layers, API Gateway routing rules, database isolation strategy, and the SAGA transaction model.
API Gateway
Learn how the Spring Cloud Gateway routes requests, applies global CORS policies, and exposes health endpoints.
API Reference
Explore the versioned REST endpoints exposed by each domain service, with request/response schemas and curl examples.