Materials

The examples demonstrated throughout the course are available in a GitHub repository. For quick reference, the course slides are available as HTML or PDF, the course notes are likewise available as HTML or PDF. Both the slides and the notes are quite brief, please consult the references in the notes for further information.

Schedule

The detailed schedule is built gradually as we move through the semester.

Week Content
1 Distributed Systems Architecture - Architectural Patterns - Middleware. Serialization - CBOR.
2 Serialization - protobuf (Message Description Language, Language Mappings, Encoding).
3 Remote Procedure Call - gRPC (Interface Definition Language, Language Mappings, Stream Arguments, Asynchronous Implementation).
4 Remote Procedure Call - Java RMI (Threading Models, Argument Passing Transparency, Distributed Garbage Collection).
5 Remote Procedure Call - Thrift (Interface Definition Language, Language Mappings) - Web Services (SOAP, WSDL, BPEL).
6 Messaging - Concepts (Messages, Queues, Topics) - JMS (Classic API, Simplified API, Sessions and Threads, Reliable Delivery, Transactions).
7 Messaging - Enterprise Integration Patterns - (Examples). Messaging - Kafka (Architecture, Data Model, Reliable Delivery).
8 Messaging - Kafka (Streams, Raft Consensus). Distributed Computations - Hazelcast (Architecture, Distributed Data Structures).
9 Distributed Computations - Hazelcast (Distributed Computations). Protocols - Concepts (Reliability, Flow Control, Congestion Control) - Routing (Address Translation Traversal Principles) - Multicast (Membership, Reliability, Ordering).