Cristóbal Contreras
EstudianteGregory Taveras Ramirez
EstudianteAndrés Felipe Perdomo Alvarado
EstudianteMichael Marin Valencia
Company_adminJhon Alexander Alvarez Romero
Estudiantego get github.com/segmentio/ksuid
Este código tiene una inconsistencia eventual
creo que si guarda en al base de datos y el PublishCreatedFeed falla seria recomendable manejarlo de esta manera
if err := repository.InsertFeed(r.Context(), &feed); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } if err := events.PublishCreatedFeed(r.Context(), &feed); err != nil { log.Printf("failed to publish event, rolling back database insert: %v", err) // Intentar borrar el feed insertado (un "rollback" manual) _ = repository.DeleteFeed(r.Context(), feed.ID) http.Error(w, "failed to process request fully", http.StatusInternalServerError) return }
Vamos en más de la mitad del curso y no se ha probado nada, solo código. Sería bueno ir montando el servidor y las rutas e ir viendo cómo va funcionando el flujo de la app, así solo se muestren logs o prints. Por lo que veo, vamos a terminar probando toda la app en las últimas 2 clases y posiblemente salgan errores que al profesor no y toque solventarlos todos a la vez.
Usaria Gorilla Mux en aplicativos que requieran routing un poco mas complejo, pero para definición de rutas o servicios mas básicos usaria el paquete de go-chi, es algo mas minimalista y simple, se ajusta a microservicios que no requieran complejidad en el registro de sus rutas o sub-rutas, un ejemplo las rutas registradas en esta clase.
Que te pareceria o cuando usarias gingonic?