ULan
CO3404 All Lecture Slides.pdf
Template (Specialised)¶
Assignment¶
CO3404 Assignment Brief Notes
CO3404 Assignment 58
Exam (1st Attempt was Resit) (05-08-2026)¶
Went well, despite so so so many diagram questions. I missed a single question which was about elastic compute.
Lectures¶
Semester 1¶
CO3404 Lecture 1 - Introduction To Distributed Systems ✔️
CO3404 Lecture 2 - Introduction Continued ✔️
CO3404 Lecture 3 - REST & Intro to NodeJS ✔️
CO3404 Lecture 4 - JavaScript Functions (Same Week)
CO3404 Lecture 5 - Promises, Middleware & Databases (Same Week)
CO3404 Lecture 6 - Adding a Database to the Stack
CO3404 Lecture 7 - Docker & Containerisation
CO3404 Lecture 8 - Docker Volumes & Database Container
CO3404 Lecture 9 - Asynchronous Messaging with RabbitMQ
CO3404 Lecture 10 - KONG API Gateway
Semester 2¶
CO3404 Lecture 11 - Event-Driven Architecture RabbitMQ & Kafka
CO3404 Lecture 12 - Subnets & Baston Hosts
CO3404 Lecture 13 - Infrastructure as Code
CO3404 Lecture 14 - Security - TLS
CO3404 Lecture 15 - TLS Operation & Swagger
CO3404 Lecture 16 - Authentication and Authorisation
CO3404 Lecture 17 - (MongoDB) & (System Scaling & Resilience)
CO3404 Lecture 18 - Kubernetes
CO3404 Lecture 19 - Revision
Labs¶
While formal labs are not provided, independent work is imperative for this module as work is provided weekly on blackboard.
- Theory is discussed in the first lecture.
- The theory is demonstrated in the demos lecture.
- Exercises or activities provided can be found at the end of the lecture notes.
Demo Videos and Instructions¶
CO3404 - Demo 1
CO3404 - Demo 2
CO3404 - Demo 3
CO3404 - Demo 4
[[CO3404 - Demo 5]]
[[CO3404 - Demo 6]]
[[CO3404 - Demo 7]]
[[CO3404 - Demo 8]]
Revision List Provided for Exam¶
- Cloud service models Scalability, resilience and high-availability ✔️
- Monolith (e.g. 3-tier) ✔️
- Distributed systems (e.g. microservices) pros and cons of each ✔️
- What is SQL injection and how you protect against it ✔️
- Security properties & operation of TLS. e.g., what crypto features does it employ to secure data in transit ✔️
- how does it do it API operation and documentation ✔️
- What is a Bastion host (jump-box) and what security benefits does it offer ✔️
- Benefits of using Terraform as opposed to other approaches to build infrastructure e.g. using the portal ✔️
- Pros and cons of event patterns ✔️
- Pros and cons of message patterns ✔️
- Benefits and use-case for Docker volumes and bind mounts ✔️
- Be able to explain a section of code from: Docker compose, dockerfile, Terraform, Kubernetes
- Kubernetes architecture and components
Block 1 — System Architecture & Cloud Models¶
Lectures 1, 2, 17
- Monolith (3-tier) vs microservices: pros/cons, ease of deployment vs complexity, fault isolation
- Cloud service models: IaaS vs PaaS vs SaaS/DBaaS — one example of each
- Vertical vs horizontal scaling (on-prem and cloud), autoscaling (scale sets / auto scaling groups)
- Load balancers: why needed, distribution algorithms (e.g. round robin)
- Availability Zones, regions, VNets/subnets spanning AZs
- Difference between high availability and resilience
- Elastic compute: virtualisation, auto-scaling, load balancing, containerisation, orchestration
Block 2 — Security & Networking¶
Lectures 12, 14, 15, 16
- SQL injection: how the attack works (mechanism), how parameterised queries/prepared statements stop it
- TLS: symmetric vs asymmetric crypto, certificates, handshake steps, what TLS actually secures (confidentiality, integrity, authentication)
- Bastion host / jump-box: what it is, why it reduces attack surface, typical placement in a subnet diagram
- (Check lecture 16 too — Authentication and Authorisation often pairs with this block)
Block 3 — Containerisation & Orchestration¶
Lectures 7, 8, 18
- Docker volumes vs bind mounts: difference, use-case for each (e.g. persistent DB storage vs local dev file sharing)
- Be able to read and explain a
Dockerfileline-by-line - Be able to read and explain a
docker-compose.ymlsection - Kubernetes architecture: control plane (API server, scheduler, etcd, controller manager) vs node components (kubelet, kube-proxy, container runtime)
- Be able to read and explain a Kubernetes manifest (pods, services, deployments)
Block 4 — Infrastructure as Code¶
Lecture 13
- Terraform benefits vs manual portal provisioning: version control, repeatability, drift detection, faster rebuild after failure
- Be able to read and explain a
.tffile section (resources, providers, variables)
Block 5 — Messaging & Event-Driven Patterns¶
Lectures 9, 11
- Message pattern pros/cons: async decoupling, queueing (RabbitMQ)
- Message vs event — the core distinction (command/intent vs "a fact that happened")
- Event pattern pros/cons: pub/sub, event streams, eventual consistency (RabbitMQ & Kafka)
- Be ready to compare RabbitMQ vs Kafka use-cases if asked
Block 6 — APIs & Documentation¶
Lectures 3, 10, 15
- REST API operation: verbs, statelessness, resources
- Swagger/OpenAPI: what it documents and why it matters for consumers
- KONG API Gateway — role/purpose (came up in lecture 10, worth a quick pass)
Exam Revision¶
CO3404 - Exam Revision 1 (03-07-2026) - 1, 2, 3
CO3404 - Exam Revision 2 (09-07-2026) 2, 3
CO3404 - Exam Revision 3 (18-07-2026) - System Architecture & Cloud Models
CO3404 - Exam Revision 4 (19-07-2026) - SQL Injection
CO3404 - Exam Revision 5 (20-07-2026) & (28-07-2026) - TLS
CO3404 - Exam Revision 6 (30-07-2026) - Baston Hosts & Authentication-Authorisation
CO3404 - Exam Revision 7 (01-07-2026) - Terraform
CO3404 - Exam Revision 8 (02-07-2026) - APIs & Documentation
CO3404 - Exam Revision 9 (03-07-2026) - Message Patterns
CO3404 - Exam Revision 10 (04-07-2026) - Event Patterns & Containersation
CO3404 - Exam Revision 11 (05-07-2026) - Questions