INNER CODE UNIT · Go
main
ThreeDotsLabs/monolith-microservice-shop · cmd/monolith/main.go:27
func main() {
log.Println("Starting monolith")
ctx := cmd.Context()
ordersToPay := make(chan payments_interfaces_intraprocess.OrderToProcess)
router, paymentsInterface := createMonolith(ordersToPay)
go paymentsInterface.Run()
server := &http.Server{Addr: os.Getenv("SHOP_MONOLITH_BIND_ADDR"), Handler: router}
go func() {
if err := server.ListenAndServe(); err != http.ErrServerClosed {
panic(err)
}
}()
log.Printf("Monolith is listening on %s", server.Addr)
<-ctx.Done()
log.Println("Closing monolith")