Microservice Pattern & Architecture (Java Spring Cloud/Boot)
What you'll learn
- Microservice architecture & patterns that can be used to design good microservice-based application
- Identify technical challenges & common pitfalls when designing microservice application, and how to handle them using proven patterns
- Example code on Spring Boot & Spring Cloud with various technologies : Apache Kafka, Consul, API Gateway, Hashicorp Vault, Circuit Breaker
- Deploy & monitor your microservice application using various technologies : Docker, Zipkin, Elasticsearch, Kibana, Logstash, Exception Tracking Service
- The focus is NOT on coding course. We will see full, detail code & explanation, but not line-by-line hands-on.
- This course has theory & code part, if you're not interested in code part, no requirement needed.
- You must know Java Spring programming if you want to fully understand sample code. This course will NOT teach basic Java Spring programming
- If you want to run sample code, you need a computer with enough memory (at least 8 GB, ideally 16 GB)
- For convenience, use Linux, Mac, or Windows 10 Professional edition. Older Windows version, or Windows 10 Home should possible runs docker too using Docker Toolbox.
Before you purchase:
The course will be focused on architecture & microservice patterns, not how to hand-code the application.
You will get full source code (downloadble). I will explain the code & algorithm, but we will not learn how to code line-by-line.
To get full understanding of sample code, you must know how to code with Java Spring.
Basic spring programming with REST API is NOT covered in this course.
If you need to know the concept, you don't need to know Spring programming
Microservice architecture has become general choice for modern application development. It solves certain problems, although it is not a solution for ecerything.
When using microservice, complexity shifts, and mindset change required. Technical challenges will arise and must be addressed. Fortunately, many people already facing the same technical challenges and developed a solution. These solutions become common patterns to solve thes problems. Thus, it become design patterns for microservices architecture.
There are many patterns to design and implement microservices.
Microservices is -by nature- distributed system, thus some technical challenges comes from this nature. Communication among services in distributed places require different approach to works efficiently. In this course, we will learn many things :
what is microservice architecture
microservice chassis to boost productivity
organize clean & standard microservice code
communication among services : synchronous, asynchronous
handling communication error
synchronize data & keeping data integrity on transaction which involves several distributed services
capture changed data in real time, in reliable way
querying data from multiple services
event sourcing, replaying data flow
API gateway concept
composing several API
tracing call chain that involves several services
centralized log & exception tracking
deploy the application as docker container
This course will be delivered with full sample code using Java Spring Boot & Spring Cloud.
Several other tools that we will use on this course :
Apache Kafka (will use a lot of this!)
Kong API management
Who this course is for:
- Software Engineers who want to learn what is microservice architecture, and how to solve common technical problems as well as avoid pitfalls
- Technical Manager / Architect that needs to design microservice implementation strategy
Timotius Pamungkas came from small Indonesian city but now working on it's capital : Jakarta. He's been in software engineering job for years. His first job was in the large consumer finance in Indonesia. Then he took a role as Engineering Manager on Indonesian unicorn. Few moments after, he moved back to another large Indonesian consumer finance and take a role on Engineering & Architect Head.
Taking the role as Head, he get more time to coach his team members about software engineering practice.
With more than 5 years experience as Java developer, and for the last few years handle enterprise complexity as Engineering Manager & Enterprise Architect, he will be glad to deliver high quality courses containing information of various technologies and software architecture design skills that he has acquired through his professional experience.
His goal is to deliver courses that not only good in theory, but also applicable in real-life use cases. His courses give the concept, and the hand-coding experience. He will also provide various resources, including source code to hands-on coding.
Other than his daily job, I also like researching new tech and get his hands into keyboard for writing codes. But he does like share what he learnt. His first teaching experience was back years ago when he was still in the college and teach juniors about algorithm. Some says he is a natural teacher, and he hope that he can share his knowledge by publishing courses into Udemy.