Developing Microservices with Quarkus Course Syllabus
Full curriculum breakdown — modules, lessons, estimated time, and outcomes.
Overview: This project-driven course provides a concise yet comprehensive introduction to building microservices with Quarkus. Designed for Java developers, it spans approximately 6 hours and combines foundational concepts with hands-on labs. You'll progress from setting up a Quarkus project to developing REST, WebSocket, and GraphQL endpoints, integrating persistence, and implementing fault tolerance. The course concludes with a capstone project that integrates all components into a functional microservice suite.
Module 1: Introduction to Quarkus & Project Setup
Estimated time: 0.5 hours
- Understanding Quarkus philosophy: container-first and native image support
- Setting up development environment with Quarkus CLI and Maven plugin
- Bootstrapping a new Quarkus project
- Exploring live-coding with hot reload
Module 2: Building RESTful Services
Estimated time: 1 hour
- Creating JAX-RS resources for HTTP endpoints
- Using CDI for dependency injection
- Serializing data with JSON-B and Jackson
- Documenting APIs using OpenAPI and Swagger annotations
Module 3: REST Client & API Documentation
Estimated time: 1 hour
- Defining REST clients with MicroProfile REST Client
- Consuming external HTTP services
- Registering and configuring client instances
- Generating and viewing interactive Swagger UI documentation
Module 4: WebSockets in Quarkus
Estimated time: 0.75 hours
- Implementing WebSocket servers with @ServerEndpoint
- Managing WebSocket sessions and messages
- Broadcasting real-time updates to clients
- Building a functional chat-based microservice
Module 5: GraphQL Endpoints
Estimated time: 0.75 hours
- Defining GraphQL schemas using SmallRye GraphQL
- Implementing queries and mutations
- Mapping payloads to domain objects
- Exposing a fully functional GraphQL API
Module 6: Fault Tolerance & Health Checks
Estimated time: 0.75 hours
- Applying @Retry and @CircuitBreaker for resilience
- Implementing liveness and readiness health checks
- Configuring fault tolerance policies
- Testing failure recovery in microservices
Module 7: Persistence & Database Integration
Estimated time: 1 hour
- Integrating PostgreSQL with Quarkus
- Using Panache ORM for simplified entity management
- Performing CRUD operations with Panache
- Introduction to reactive database clients
Module 8: Capstone Project – Microservice Application
Estimated time: 1 hour
- Developing a cohesive microservice using REST, WebSockets, and GraphQL
- Integrating fault tolerance and health checks
- Connecting to a database with Panache for persistence
Prerequisites
- Familiarity with Java and basic web concepts
- Experience with Maven or Gradle build tools
- Basic understanding of REST APIs and JSON
What You'll Be Able to Do After
- Create and configure Quarkus applications using CLI or Maven
- Build and document RESTful services with JAX-RS and OpenAPI
- Consume external APIs using type-safe REST clients
- Implement real-time communication with WebSockets
- Expose and query data via GraphQL endpoints