base on A production-grade todo app applying the following technologies: Go, gRPC, Docker, Kubernetes, Zap, Jaeger, Prometheus, Grafana and more # ToDo Application
A web service written in Go, showcasing various features and technologies used in real world production-grade
applications.
## Introduction
Hi, I'm Marcos, a Software Engineer with a strong passion for crafting innovative distributed systems with more than
four years of experience.
This repository serves as my personal showcase, meticulously designed to demonstrate the power of Go in building
production-grade web services that embrace cutting-edge technologies and deliver real-world value.
### Let's Connect!
I'm excited to explore potential collaborations. Feel free to reach out to me
at [
[email protected]](mailto:
[email protected]) or [add me on LinkedIn](https://linkedin.com/in/marcoshuck) to
discuss your needs and embark on a journey together.
**Services**: Software Engineering, Mentorships, Software architecture, Personalized training in any of the tools listed
below.
## Design document
In case you're interested in the technical explanation about this repository, feel free to check out
the [DESIGN](DESIGN.md) document.
## Features
- **Transport Mechanism**: [gRPC](https://grpc.io/)
- **Infrastructure**:
- Container engine: [Docker](https://www.docker.com/)
- Local deployment: [Docker Compose](https://docs.docker.com/compose/)
- Container orchestration: [Kubernetes](https://kubernetes.io/)
- Provisioning: [Terraform](https://www.terraform.io/) (WIP)
- Code generation: [Buf](https://buf.build/)
- **Telemetry**: Supporting [OpenTelemetry](https://opentelemetry.io/)
- Logging: [Zap](https://github.com/uber-go/zap)
- Tracing: [Jaeger](https://www.jaegertracing.io/)
- Metrics: [Prometheus](https://prometheus.io/)
- **Testing & Benchmarking**:
- [Playwright](https://playwright.dev/) for E2E testing
- **Continuous Delivery**
- Continuous Integration: [GitHub Actions](https://github.com/features/actions)
- Continuous Deployment: TBD.
## Contributing
Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change.
Please make sure to update tests as appropriate.
## License
[MIT](LICENSE)", Assign "at most 3 tags" to the expected json: {"id":"7918","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"