Course Synopsis

This course focuses on meeting key challenges of developing network-based microservices that support large numbers of clients. The course content covers the software lifecycle from design, implementation, testing, and deployment and will also emphasize microservice architectures, concurrent and parallel reactive programming, and annotation-based persistence using Spring WebMVC and WebFlux, Project Reactor, and RSocket. Design and implementation based on patterns and frameworks are central themes to enable the construction of reusable, extensible, efficient, maintainable, and scalable microservices. In addition, abstraction based on patterns and object-oriented techniques (such as separation of interface from implementation) will be the central concepts and principles throughout the course. These concepts and principles will enable you to construct reusable, extensible, efficient, maintainable, and scalable microservices.

Patterns will be taught so that you will have good role models for structuring their own designs, as well as to clearly articulate the tradeoffs of alternative methods for designing systems. Object-oriented, functional, and reactive techniques will be taught so that you will learn by example how to build highly decentralized distributed system software architectures that decouple inter-dependencies between components.


Back to CS *891 home page.