{"id":17572435,"url":"https://github.com/khaydarov/otus-microservices","last_synced_at":"2026-04-07T21:31:49.197Z","repository":{"id":37382759,"uuid":"454769136","full_name":"khaydarov/otus-microservices","owner":"khaydarov","description":"OTUS microservice architecture homeworks","archived":false,"fork":false,"pushed_at":"2022-06-28T07:36:34.000Z","size":1973,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-09T15:21:28.690Z","etag":null,"topics":["api-gateway","bff-microservice","ddd-architecture","design-patterns","docker","event-driven-architecture","golang","grafana","grpc","ingress-nginx","istio-ingress","kubernetes","microservices","php","prometheus"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/khaydarov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-02T12:39:27.000Z","updated_at":"2025-05-05T08:10:10.000Z","dependencies_parsed_at":"2022-08-25T02:00:43.050Z","dependency_job_id":null,"html_url":"https://github.com/khaydarov/otus-microservices","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/khaydarov/otus-microservices","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaydarov%2Fotus-microservices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaydarov%2Fotus-microservices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaydarov%2Fotus-microservices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaydarov%2Fotus-microservices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khaydarov","download_url":"https://codeload.github.com/khaydarov/otus-microservices/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaydarov%2Fotus-microservices/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31530641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","bff-microservice","ddd-architecture","design-patterns","docker","event-driven-architecture","golang","grafana","grpc","ingress-nginx","istio-ingress","kubernetes","microservices","php","prometheus"],"created_at":"2024-10-21T19:04:57.347Z","updated_at":"2026-04-07T21:31:49.167Z","avatar_url":"https://github.com/khaydarov.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Course plan\n\n1. Pros and cons of microservice architecture\n    * Architecture and architect\n    * Monoliths and microservices\n    * Patterns of microservice architecture\n    \n\n2. Docker basics\n   * Containerization. Overview\n   * Docker components: engine, cli, registry\n   * Building from Dockerfile\n   * Practice: build, run, up, down, pull, push\n    \n\n3. Infrastructural patterns\n   * CI/CD methodology\n   * VM vs Containers\n   * Deployment patterns\n   * Service discovery \n   * Health check\n\n\n4. Kubernetes basics (part 1)\n   * Pods, ReplicaSets, Deployments\n\n\n5. Kubernetes basics (part 2). [Homework #1](https://github.com/khaydarov/otus-microservices/tree/main/hw01)\n   * ConfigMaps, Persistence Volumes, Persistence Volume Claims\n   * Helm, Helm-dep, Ingress \n\n\n6. Kubernetes basics (part 3). [Homework #2](https://github.com/khaydarov/otus-microservices/tree/main/hw02)\n   * Templating with Helm\n   * Jobs, Secrets\n\n\n7. Kubernetes. QA\n8. Monitoring and alerting\n   * USE, RED и Four Golden Signals\n   * SLI, SLO, SLA\n   * Metric collection patterns\n    \n\n9. Prometheus, Grafana. [Homework #3](https://github.com/khaydarov/otus-microservices/tree/main/hw03)\n   * Prometheus\n   * Grafana\n   * AlertManager\n   * PromQL \n    \n\n10. Service mesh on the example of Istio [Homework #4](https://github.com/khaydarov/otus-microservices/tree/main/hw04)\n    * Service Mesh architecture\n\n\n11. Authorization and authentication in microservice architecture\n    * Auth patterns in monoliths\n    * Identity Provider и OIDC\n    * Token-Based authentication, JWT\n    * Auth-Proxy\n    \n\n12. Backend for frontends. API Gateway. [Homework #5](https://github.com/khaydarov/otus-microservices/tree/main/hw05)\n    * API Gateway\n    * Backend for Frontends\n    * Auth patterns in API Gateway\n    * Circuit Breaker, Retry\n\n\n13. Asynchronous and synchronous API\n    * Message Bus, Enterprise Service Bus\n    * CQRS, Event Sourcing  \n    * Orchestration and choreography\n    * API versioning\n    * IDL, API design first\n    * Anemic API vs Rich API\n\n\n14. Event Driven Architecture\n    * Designing event driven patterns\n    * Using event driven patterns\n\n\n15. Distributed message brokers on the example of Kafka\n    * Kafka    \n\n\n16. Consistent data maintenance patterns (Stream processing). [Homework #6](https://github.com/khaydarov/otus-microservices/tree/main/hw06)\n    * Transactional Log\n    * Stream processing\n    * Event Sourcing\n    * Change Data Capture\n\n\n17. GraphQL, gRPC\n18. RESTful\n    * Maturity levels;\n    * HATEOS  \n    * Anemic API and Rich API\n    * Restful Patterns\n    * JsonSchema, OpenAPI\n    * GraphQL\n\n\n19. Idempotency and commutativity API in HTTP and message brokers. [Homework #7](https://github.com/khaydarov/otus-microservices/tree/main/hw07)\n    * Idempotency and commutativity\n    * Idempotent receiver\n    * Idempotent consumer\n    * Polling publisher\n    * Compare-and-Set\n    * Transaction Log Miner\n    \n\n20. Testing in microservices (part 1)\n    * Architecture Significant Requirements\n    * Availability, Interoperability, Modifiability\n    * Architecture Frameworks\n    * Quality Attributes Assessment\n\n\n21. Testing in microservices (part 2)\n    * Chaos engineering\n    * Stress testing    \n\n\n22. DDD and modular monoliths (part 1)\n    * Coupling\n    * Cohesion\n    * Common principles\n\n\n23. DDD and modular monoliths (part 2)\n    * Decomposition rules\n    * Aggregates\n    * Strategic Classification\n\n\n24. Microservices decomposition. [Homework #8](https://github.com/khaydarov/otus-microservices/tree/main/hw08)\n    * Decomposition patterns\n    * Context Canvas\n    \n\n25. From monolith to microservices\n    * Distributed Tracing\n    * Opentracing/OpenTelemetry\n    * Tracers: Zipkin, Jaeger; APM: NewRelic, DataDog\n    * Strangler pattern\n\n\n26. Distributed systems overview\n    * CAP \u0026 PACELC theorems\n    * BASE \u0026 ACID\n    * Actor Model\n\n\n27. Distributed transactions. [Homework #9](https://github.com/khaydarov/otus-microservices/tree/main/hw09)\n    * Consistency patterns\n    * Two-phase commit, Saga pattern\n    * Transactional messaging\n    * Deadlock\n\n\n28. Caching patterns\n    * LRU, MRU, PLRU, LFU\n    * LoadBalancing\n\n\n29. Sharding\n    * Vertical, Horizontal partitioning\n    * Vertical, Horizontal sharding\n    * Consistent hashing\n\n\n30. CP systems\n    * Consistency algorithms: Paxos, Raft, Zab\n    \n\n31. AP systems\n    * Gossip: Scuttlebut\n    * Replication without master (dynamoDB like databases)\n    \n\n32. The role of the architect\n    * Evolutionary Architecture and Emergent Design     \n\n\n33. Architecture cost. Artifacts of architecture\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhaydarov%2Fotus-microservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhaydarov%2Fotus-microservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhaydarov%2Fotus-microservices/lists"}