https://github.com/maniartech/signals Очень простая в подключении, супер быстрая библиотека для реализации pub/sub event системы в go приложениях. `package main
import ( "context" "fmt" "github.com/maniartech/signals" )
type User struct { ID int Name string }
// Async signals for non-critical events var UserRegistered = signals.NewUser var EmailSent = signals.Newstring
func main() { // Add listeners for user registration UserRegistered.AddListener(func(ctx context.Context, user User) { fmt.Printf("📧 Sending welcome email to %sn", user.Name) EmailSent.Emit(ctx, user.Name) })
UserRegistered.AddListener(func(ctx context.Context, user User) { fmt.Printf("📊 Adding user %s to analyticsn", user.Name) })
// Emit user registration event ctx := context.Background() UserRegistered.Emit(ctx, User{ID: 1, Name: "John Doe"}) }`