Skip to content

Commit

Permalink
feat: new project rinha-de-backend
Browse files Browse the repository at this point in the history
  • Loading branch information
Ryrden committed May 18, 2024
1 parent 5f59715 commit b8d02b3
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions _data/projects-pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,24 @@
"nextSteps": "Há diversos próximos passos para este projeto, como permitir o usuário a trocar entre modo claro e noturno, entre diversas melhorias de usabilidade e acessibilidade, além de adicionar novos conteúdos e funcionalidades ao site."
}
},
{
"title": "Rinha de Backend 2024/01 - Concorrência com operações financeiras",
"description": "A Rinha de Backend é um desafio que tem como principal objetivo compartilhar conhecimento em formato de desafio! Esta foi a segunda edição onde o principal assunto foi controle de concorrência com operações financeiras de créditos e débito",
"technologies": ["go", "fiber", "postgresql", "nginx", "docker"],
"image": "https://private-user-images.githubusercontent.com/76923948/310218163-e1b5239b-c49c-4a63-a0c5-6bed908d5029.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5Mjk0ODAsIm5iZiI6MTcxMjkyOTE4MCwicGF0aCI6Ii83NjkyMzk0OC8zMTAyMTgxNjMtZTFiNTIzOWItYzQ5Yy00YTYzLWEwYzUtNmJlZDkwOGQ1MDI5LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNDEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDQxMlQxMzM5NDBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iZjVkMzdhMTE1MTZkMmZlYmM1YTJjNzFlZjBmMWUzODAzYzcwZDRjYTU0ZjI5NzYxZDgyZjYxZGI0YzliYmM2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.elLiTWPpuaZPQAOp_YIqSvo0M4ecen78zEWLlx-h4pc",
"source_code": "https://github.com/ryrden/rinha-de-backend-go",
"demonstration": null,
"created_at": "2021-08-01",
"updated_at": "2021-08-01",
"category": ["backend", "challenge"],
"details": {
"problemSolved": "Não exatamente um problema real mas um desafio dentro da comunidade dev. Rinha de Backend é um desafio organizado por Francisco Zanfranceschi (@zanfranceschi) e tem como principal objetivo o desenvolvimento de uma API com foco em arquitetura e otimização em cenários de recursos limitados, nesta competição os recursos foram limitados para não ultrapassar 1.5 unidades de CPU e 550MB de memória entre todos os componentes da arquitetura. Esta foi a segunda edição da rinha e o desafio foi sobre concorrência com operações financeiras.",
"howItWasDeveloped": "Este desafio foi solucionado utilizando a linguagem Go utilizando o framework Fiber (w/ fasthttp), um banco de dados PostgreSQL e Ngix como proxy reverso. O projeto foi dockerizado para facilitar a execução dentro de um ambiente controlado e para facilitar a execução dos testes de carga. Para os testes de carga foi utilizado o Gatling. O projeto me tomou cerca de 1 mês para ser desenvolvido de modo a ter um bom desempenho dentro da competição, para tratar questões de concorrência e garantir a integridade dos dados eu utilizei a técnica de Lock pessimista dentro do postgres. A arquitetura do projeto foi pensada para ser escalável e performática e dentro do cenário de recursos limitados e a questão de competição, o uso de cache não foi necessário, mas foi utilizado o conceito de pool de conexões para o banco de dados.",
"technologyReason": "Golang é uma das linguagens de programação mais performáticas da atualidade e é muito utilizada em cenários de alta concorrência, além de ser uma linguagem muito simples e fácil de aprender. O Fiber é um framework web muito performático e fácil de usar, além de ser muito rápido e ter uma comunidade muito ativa. O PostgreSQL é um dos bancos de dados mais utilizados no mundo por ser robusto. Gatling e Nginx foram ferramentas pre-escolhidas dentro das regras da competição para o teste de carga",
"learning": "Este desafio foi algo além de minha zona de conforto e foi ótimo ter completado ela, aprendi muito interagindo na comunidade e errei bastante também, acredito que o maior desafio foi encontrar o principal gargalo de desempenho e otimizar ele, felizmente consegui encontrar e otimizar o problema. Aprendi muito sobre concorrência e otimização de arquitetura com este desafio.",
"nextSteps": "a rinha foi finalizada atendendo todos os requisitos e sem nenhuma penalidade eu obtive a nota máxima, o que falta para este projeto seria a adição de testes para garantir a integridade do sistema em casos da adição de novas funcionalidades. Outro ponto seria desenvolver a rinha em outras stacks de tecnologia para aprender mais sobre outras linguagens e frameworks."
}
},
{
"title": "Adoção Cãosciente - [SSC0536 - Projeto e Desenvolvimento de Sistemas de Informação]",
"description": "Plataforma para automação de processos de adoção de animais, incluindo cadastro de animais, usuários, formulários de adoções, etc.",
Expand Down

0 comments on commit b8d02b3

Please sign in to comment.