Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Materi tertulis · 24 modul

Materi Microservices

Kelas arsitektur microservices berbahasa Indonesia: 24 modul tentang database per service, messaging, orkestrasi dan koreografi, Saga, API Gateway, CQRS, resilience, service discovery, dan contract testing.

Konsep Dasar

  1. 1. Belajar Microservices - IntroPengenalan arsitektur Microservices, sejarah evolusi dari Monolith, alasan adopsi microservices di perusahaan tech, dan tantangan umum yang dihadapi.

Arsitektur

  1. 2. Belajar Microservices - Arsitektur MonolithKelebihan dan kekurangan Arsitektur Monolith, masalah scaling, blast radius kegagalan, bottleneck kompilasi, serta skenario saat Monolith masih pilihan terbaik.
  2. 3. Belajar Microservices - Arsitektur MicroservicesKonsep Decomposing aplikasi menjadi layanan-layanan independen, prinsip High Cohesion & Loose Coupling, Bounded Context (Domain-Driven Design), dan siklus rilis mandiri.
  3. 4. Belajar Microservices - Type of MicroservicesKlasifikasi tipe microservices: Stateless Services, Stateful Services, Data Services, Edge Services, dan Worker/Consumer Services.

Data Pattern

  1. 5. Belajar Microservices - Database per ServicePola Database per Service di mana setiap microservice memiliki DB tersendiri (Polyglot Persistence). Mencegah tight coupling di tingkat tabel RDBMS.
  2. 6. Belajar Microservices - Shared DatabaseAntipattern dan kriteria terbatas penggunaan Shared Database dalam Microservices, bahaya perubahan skema tabel bersama, dan tantangan locking.
  3. 7. Belajar Microservices - NoSQL DatabasePenggunaan database NoSQL (Document Store, Key-Value, Column-family, Graph) yang disesuaikan dengan kebutuhan domain bisnis masing-masing service.

Komunikasi

  1. 8. Belajar Microservices - Remote Procedure InvocationKomunikasi sinkron antar service menggunakan HTTP REST API, gRPC (Protocol Buffers), SOAP/RPC, latensi jaringan, serta mitigasi cascading failures.
  2. 9. Belajar Microservices - Asynchronous MessagingKomunikasi asinkron Event-Driven Architecture menggunakan Message Brokers (RabbitMQ, Apache Kafka, Redis Streams) untuk loose coupling total.

Orkestrasi

  1. 10. Belajar Microservices - Service OrchestrationPola Saga Orchestration menggunakan Central Orchestrator (seperti Camunda/Temporal) untuk mengoordinasi transaksi terdistribusi multi-step.
  2. 11. Belajar Microservices - Service ChoreographyPola Saga Choreography di mana setiap service mendengarkan domain event dan mempublikasikan event balasan tanpa titik kontrol terpusat.
  3. 12. Saga Pattern & Transaksi TerdistribusiMenjaga konsistensi data lintas layanan tanpa transaksi ACID global: saga orkestrasi, saga koreografi, transaksi kompensasi, dan pola Outbox.

Gateway & Routing

  1. 13. Belajar Microservices - API Gateway PatternPeran API Gateway (Kong, Spring Cloud Gateway, Traefik) sebagai single entry point: Reverse Proxy, Request Routing, Rate Limiting, SSL Termination.
  2. 14. Belajar Microservices - Backend for Frontend (BFF)Pattern Backend for Frontend (BFF) di mana gateway khusus dibuat sesuai kebutuhan klien berbeda (Web Desktop, Mobile Android/iOS, Third Party API).

Keamanan

  1. 15. Belajar Microservices - Authentication & AuthorizationStrategi autentikasi terpusat di API Gateway dengan OAuth2 / OpenID Connect, JWT (JSON Web Token), dan propagation token ke internal microservices.

Advanced Pattern

  1. 16. Belajar Microservices - CQRS PatternPattern Command Query Responsibility Segregation (CQRS) memisahkan model penulisan data (Command / Mutation) dan pembacaan data (Query / Read Store).

Keandalan

  1. 17. Resilience Pattern - Circuit Breaker, Retry, Timeout & BulkheadMencegah satu layanan yang lambat menyeret seluruh sistem: timeout wajib, retry yang tidak memperparah keadaan, circuit breaker, dan isolasi sumber daya.
  2. 18. Distributed Tracing & ObservabilityMelacak satu permintaan yang melintasi banyak layanan dengan trace, span, dan context propagation memakai OpenTelemetry, serta menggabungkannya dengan log dan metrik.
  3. 19. Contract Testing & Strategi Pengujian MicroservicesMenguji integrasi antar layanan tanpa menjalankan seluruh sistem: piramida uji, consumer-driven contract, dan Testcontainers.

Infrastructure

  1. 20. Belajar Microservices - Server Side DiscoveryCara microservices menemukan lokasi alamat IP & port service lain secara dinamis menggunakan Server-Side Discovery (Kubernetes DNS / Load Balancer).
  2. 21. Belajar Microservices - Client Side DiscoveryPola Client-Side Discovery (Eureka Client, Consul) di mana aplikasi mengecek ke Service Registry dan memilih instance service secara independen.
  3. 22. Belajar Microservices - Service RegistryDatabase terpusat (Netflix Eureka, HashiCorp Consul, ZooKeeper) untuk mencatat pendaftaran otomatis instance microservices (Health Check & Registration).
  4. 23. Belajar Microservices - Centralized ConfigurationPengelolaan konfigurasi terpusat (Spring Cloud Config, HashiCorp Vault, Kubernetes ConfigMap) agar parameter aplikasi dapat diubah tanpa re-deploy.
  5. 24. Service Mesh & Deployment ke KubernetesMemindahkan urusan jaringan dari kode ke infrastruktur dengan sidecar proxy, mTLS otomatis, traffic splitting, serta pola deployment canary dan blue-green.