{"id":48281718,"url":"https://github.com/leoviana00/order-observability-lab","last_synced_at":"2026-04-04T22:48:41.837Z","repository":{"id":342098931,"uuid":"1170956630","full_name":"leoviana00/order-observability-lab","owner":"leoviana00","description":"Laboratório prático para aplicar gestão de logs em arquitetura de microserviços, com abordagem próxima de ambiente real de produção, mas em escala reduzida para estudo.","archived":false,"fork":false,"pushed_at":"2026-03-13T18:25:43.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-14T06:55:06.546Z","etag":null,"topics":["docker","elk-stack","java","kubernetes","logging","microservice","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","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/leoviana00.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,"governance":null,"roadmap":"docs/roadmap/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-02T18:02:23.000Z","updated_at":"2026-03-13T18:25:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/leoviana00/order-observability-lab","commit_stats":null,"previous_names":["leoviana00/order-observability-lab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/leoviana00/order-observability-lab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoviana00%2Forder-observability-lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoviana00%2Forder-observability-lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoviana00%2Forder-observability-lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoviana00%2Forder-observability-lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leoviana00","download_url":"https://codeload.github.com/leoviana00/order-observability-lab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoviana00%2Forder-observability-lab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31418270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: 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":["docker","elk-stack","java","kubernetes","logging","microservice","spring-boot"],"created_at":"2026-04-04T22:48:41.286Z","updated_at":"2026-04-04T22:48:41.826Z","avatar_url":"https://github.com/leoviana00.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Order Observability Lab\n\n## Visão Geral\n\nO **Order Observability Lab** é um projeto de estudo que demonstra a implementação de **observabilidade de logs em uma arquitetura de microserviços** utilizando **Spring Boot, Kubernetes e Elastic Stack**.\n\nO projeto simula um fluxo simples de negócio relacionado ao processamento de pedidos, permitindo observar como eventos e falhas se propagam entre serviços distribuídos e como essas informações podem ser coletadas, indexadas e analisadas por meio de ferramentas de observabilidade.\n\nO laboratório tem como foco principal a **gestão estruturada de logs**, aplicando boas práticas utilizadas em ambientes modernos de microserviços e plataformas de observabilidade.\n\n---\n\n# Objetivos do Projeto\n\nEste projeto tem como principais objetivos:\n\n* Implementar **logging estruturado padronizado**\n* Demonstrar **correlação distribuída de requisições**\n* Construir um **pipeline completo de ingestão de logs**\n* Permitir **análise centralizada de eventos e falhas**\n* Simular cenários operacionais para estudo de diagnóstico\n\nA solução foi projetada para reproduzir, em escala reduzida, padrões utilizados em ambientes de produção.\n\n---\n\n# Arquitetura do Projeto\n\nO sistema é composto por múltiplos microserviços que processam requisições de pedidos e geram logs estruturados durante sua execução.\n\nFluxo principal de processamento:\n\n```text\nClient → API Gateway → Order Service → Payment Service → Notification Service\n```\n\nCada serviço gera logs estruturados contendo o mesmo identificador de correlação, permitindo reconstruir o fluxo completo da requisição.\n\n---\n\n# Pipeline de Observabilidade\n\nOs logs produzidos pelos serviços são coletados e processados por uma stack de observabilidade baseada no Elastic Stack.\n\nFluxo de ingestão de logs:\n\n```text\nMicroservices → stdout → Filebeat → Elasticsearch → Kibana\n```\n\nComponentes utilizados:\n\n* **Filebeat** – coleta logs dos containers\n* **Elasticsearch** – indexação e armazenamento\n* **Kibana** – visualização e análise de logs\n\n---\n\n# Estrutura do Projeto\n\nO repositório está organizado da seguinte forma:\n\n```text\norder-observability-lab\n│\n├── services\n│   ├── api-gateway\n│   ├── order-service\n│   ├── payment-service\n│   └── notification-service\n│\n├── observability\n│   ├── elasticsearch\n│   ├── kibana\n│   └── filebeat\n│\n├── infrastructure\n│   ├── docker\n│   └── kubernetes\n│\n├── docs\n│   ├── architecture\n│   ├── observability\n│   ├── log-contract\n│   └── roadmap\n│\n└── README.md\n```\n\nEssa estrutura visa separar e organizar:\n\n* **código de aplicação**\n* **infraestrutura**\n* **configuração de observabilidade**\n* **documentação**\n\n---\n\n# Log Contract\n\nTodos os microserviços seguem um contrato de logs estruturados definido no projeto.\n\nO contrato estabelece:\n\n* estrutura padrão dos logs\n* campos obrigatórios\n* classificação de eventos\n* estratégia de indexação\n* política de log levels\n\nDocumento completo disponível em:\n\n```\ndocs/log-contract/log-contract-v1.1.md\n```\n\n---\n\n# Roadmap de Implementação\n\nO desenvolvimento do laboratório segue um roadmap incremental composto por oito fases:\n\n1. Fundamentos de Logging\n2. Implementação do Primeiro Serviço\n3. Containerização\n4. Pipeline de Logs\n5. Kubernetes\n6. Arquitetura Distribuída\n7. Observabilidade Operacional\n8. Maturidade de Logs\n\nDetalhes completos disponíveis em:\n\n```\ndocs/roadmap/roadmap.md\n```\n\n---\n\n# Tecnologias Utilizadas\n\nO projeto utiliza as seguintes tecnologias:\n\n* **Java 17**\n* **Spring Boot**\n* **Docker**\n* **Kubernetes**\n* **Filebeat**\n* **Elasticsearch**\n* **Kibana**\n\nEssas ferramentas compõem uma stack amplamente utilizada para observabilidade em arquiteturas de microserviços.\n\n---\n\n# Resultados Esperados\n\nAo final da implementação, o laboratório permitirá:\n\n* rastrear requisições entre múltiplos serviços\n* identificar erros técnicos e eventos de negócio\n* analisar latência de operações\n* visualizar logs em dashboards no Kibana\n* simular cenários de falha para estudo operacional\n\n---\n\n# Como Executar o Projeto\n\nAs instruções detalhadas de execução serão adicionadas conforme as fases do roadmap forem concluídas.\n\nO objetivo é permitir a execução do ambiente tanto em **Docker Compose (local)** quanto em **Kubernetes**.\n\n---\n\n# Status do Projeto\n\nProgresso atual:\n\n* [x] Fase 1 — Fundamentos de Logging\n* [x] Fase 2 — Implementação do Primeiro Serviço\n* [x] Fase 3 — Containerização\n* [x] Fase 4 — Pipeline de Logs\n* [ ] Fase 5 — Kubernetes\n* [ ] Fase 6 — Arquitetura Distribuída\n* [ ] Fase 7 — Observabilidade Operacional\n* [ ] Fase 8 — Maturidade de Logs\n\n---\n\n# Contribuição\n\nEste projeto é um laboratório educacional voltado para estudo de observabilidade em sistemas distribuídos.\n\nSugestões de melhorias e experimentações são bem-vindas.\n\n---\n\n# Licença\n\nEste projeto é disponibilizado para fins educacionais.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoviana00%2Forder-observability-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleoviana00%2Forder-observability-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoviana00%2Forder-observability-lab/lists"}