INDICATIVE CONTENT
This module addresses the following indicative topics:
Advanced Distributed Application Architectures
Multi-tier and service-oriented architectures
Client–server, event-driven, and microservice-based designs
Integration of external and real-time data sources
Concurrency, Parallelism, and Coordination:
Asynchronous programming and concurrency models
Threading, synchronisation, and coordination mechanisms
Managing race conditions, deadlock, and fault scenarios
Distributed Systems Principles and Trade-offs:
Scalability, performance, and reliability considerations
Consistency, availability, and fault tolerance
Evaluation and justification of architectural design decisions
Data Systems for Distributed Applications:
Data modelling and storage strategies for distributed systems
Stream and batch data processing concepts
Data validation, integrity, and observability
Consideration of accessibility and inclusivity associated issues within system types
AI-Enabled and Data-Driven Distributed Services:
Integration of data analytics or AI components into distributed applications
Model inference within service-based architectures
Performance, latency, and deployment considerations
Security, Legal, and Ethical Considerations:
Secure consumption and processing of external data
Privacy, legal, and ethical issues in distributed and AI-enabled systems
Professional standards and responsible system design
Sustainability and Professional Practice:
Resource efficiency and performance optimisation
Sustainable and cost-aware system design decisions
Professional documentation and communication of technical solutions
BCS / TechSkills / Employability elements:
Legal, social, ethical and professional issues.
System modelling and evaluation of both app and distributed systems.
Sustainability (environmental and socio-economic dimensions).
Evaluation and design trade-offs within a design and implementation process.
Artefact development for distributed systems.
ADDITIONAL ASSESSMENT DETAILS
PRACTICAL – Demonstration
You will design, implement, and test a distributed application that consumes data from one or more real-time sources (e.g., APIs/streams) and includes a data system component (e.g., storage/processing pipeline) with an AI element (e.g., model inference, intelligent ranking/recommendation, anomaly detection, or decision logic). You will demonstrate concurrency/asynchronous processing, secure handling of external inputs, and appropriate validation/testing. In doing this it is recommended you focus on three key aspects – Design issues, implementation factors, and required testing approaches with results.
REPORT – Technical Report
You will produce an individual technical report that evaluates the system design. The report must justify architectural decisions and trade-offs (e.g., scalability, consistency, fault tolerance, concurrency mechanisms, security controls), discuss limitations, and include professional/ethical/legal and sustainability considerations relevant to deploying distributed AI/data systems. In terms of write up you should focus half of the report on technical aspects, and the remainder on professional issues that have developed through exploring and applying technical aspects (addressing ethical, legal, and sustainability considerations).
LEARNING STRATEGIES
Scheduled sessions will blend lectures, demonstrations, and practical workshops focused on applying distributed systems concepts to realistic scenarios (simulation-based learning). You will develop solutions through structured lab tasks and guided build iterations, supported by formative checkpoints, peer discussion, and tutor feedback. Independent study will involve targeted reading, experimentation, and evaluation activities (e.g., performance testing and trade-off analysis), preparing you for the implementation/demo and final technical report.
LEARNING OUTCOMES
1. Implement distributed applications that consume, process, and integrate data from real-time sources.
Application and Problem-Solving
2. Critically evaluate distributed system design decisions and justify trade-offs for performance and reliability.
Application and Problem-Solving
3. Engineer and assess a data-intensive/AI-enabled distributed solution, demonstrating appropriate system modelling and testing.
Digital Literacy
4. Critically reflect on professional, ethical, legal, and sustainability considerations in building and deploying distributed and AI/data systems.
Reflection
Communication
RESOURCES
Current IDEs and language runtime/toolchain appropriate to the delivery stack (e.g., Java/.NET/Node/Python)
Version control platform (e.g., Git) and issue tracking for professional workflow
API testing tools; containerisation and local orchestration tooling (as provided)
Web server / application server environment
Observability tools (logging / metrics) and performance testing utilities
University VLE resources, datasets/sample APIs, and curated research/industry readings
TEXTS
Babushkin, V. and Kravchenko, A. (2025), Machine Learning System Design: With End-to-End Example, Manning Publications.
Burns, B. (2024), Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Systems Using Kubernetes, 2nd ed., O’Reilly Media.
Vitillo, R. (2022), Understanding Distributed Systems: What every developer should know about large distributed applications, 2nd ed., Roberto Vitillo.
Huyen, C. (2022), Designing Machine Learning Systems: An Iterative Process for Production-Ready Applications, O’Reilly Media.
Reis, J. and Housley, M. (2022), Fundamentals of Data Engineering: Plan and Build Robust Data Systems, O’Reilly Media.
WEB DESCRIPTOR
In this module, you will advance your skills in building data-intensive distributed applications that operate across networks and serve multiple users. You will design and implement robust services that consume real-time data and integrate data-systems and AI-enabled components. You will also evaluate key distributed systems trade-offs such as concurrency, scalability, fault tolerance, and security. You will finally justify your design decisions using professional, evidence-based reasoning.