Course - Presentations

Required Architecture Overview

Short overview of the IT490 queue-centered systems integration architecture.

In This Presentation

  • Architecture Shape
  • Main Rule
  • Technology Examples
  • API Result Cache
  • Use the final checks to confirm the result.

Architecture Shape

IT490 systems integration architecture diagram

Main Rule

The app server does not directly connect to internal services.

  • App server sends requests to RabbitMQ
  • RabbitMQ routes messages to the correct service
  • Workers handle the requested work
  • Results or status return through the queue

Core idea: internal machine communication is message queue traffic.

Technology Examples

The diagram names common course technologies, but the roles matter more than the exact product.

App Server

  • Example: Apache + PHP
    • Could be any approved backend
  • Handles user-facing app logic
  • Publishes work requests

DB Server

  • Example: MySQL or MariaDB
    • Could be any approved database
  • Stores user and project data
  • Stores transformed API cache data

API Result Cache

The database can cache API results, but not as a raw dump.

  • API worker calls the external API
  • API worker transforms the response
  • App stores the cleaned result needed by the project
  • Cached data should support user workflows

Cache the useful project data, not every field from the external response.

What Is A Job?

A job is a small request for another service to do work.

Examples:

  • Fetch player stats from an API
  • Process a user upload
  • Refresh cached data
  • Send a notification
  • Write an audit or status event

A job should include enough information for the worker to act without guessing.

Job Message Shape

A message usually identifies:

  • Action: what should happen
    • A type property is used as a label in the example code in a future lesson
  • Payload: data needed to do it
    • Such as user or app context when relevant
  • CorrelationId for handling replies
  • Status or error result when finished

The exact format can vary, but the message should be predictable.

Why Use A Queue?

  • Keeps app requests fast
  • Isolates backend services
  • Makes work retryable
  • Helps teams trace failures
  • Reduces direct service coupling

RabbitMQ becomes the contract between parts of the system.

Summary

Before submitting the proposal, outline:

  • The user-facing objective and main workflow
  • The app server role and backend technology choice
  • The database role and what project data it stores
  • The external API and transformed data to cache
  • The worker jobs the team expects to need
  • How those jobs move through RabbitMQ

Ensure there are no direct VM to VM connections/requests beyond Message Queue

  • This is a hard constraint on the architecture