wire
watermill
Our great sponsors
wire | watermill | |
---|---|---|
29 | 23 | |
12,291 | 6,729 | |
2.3% | 2.2% | |
2.7 | 6.5 | |
about 2 months ago | 5 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wire
- Injeção de dependência em Go
-
Question about dependency initialization
We use https://github.com/google/wire for every bigger project, take a look at it, it beautifully solves initialisation and also gives you a guideline on how to do it.
-
As a Go programmer, what design pattern, programming techniques have you actually used, implemented regularly in your workplace which made your life much easier?
Im by no means a "purist" in such things, I love my magic and QoL-features/libs, but havent seen something that is so easy to use in go, that I immediately wanted to add it. And to be fair, I only looked closely at https://github.com/google/wire , others I have just skipped - and I will be looking into uber-fx as mentioned in the other comment.
-
Config for production and mocking (db connections, http parsers etc)
If you have such a complex and deep dependency graph, and you don't want to manually maintain it, you could use some DI library to handle that for you. Something like https://github.com/google/wire for small-medium size stuff, or https://github.com/uber-go/fx for larger scale, more enterprise projects.
- Is it just me or does nobody really know what idiomatic Go is.
-
What's the best dependency injection framework / methodology for Golang for the enterprise?
Try https://github.com/google/wire. Compile time generated like dagger 2 in java.
-
Modern API design with Golang, PostgreSQL and Docker.
Most people probably do it by hand (I do). But otherwise, probably https://github.com/google/wire is the most popular, maybe followed by https://github.com/uber-go/fx.
-
Google's internal Go style guide
For larger object graphs do you roll everything by hand or encourage something like https://github.com/google/wire
-
godi a New Dependency Injection library - feedback welcome
The other thing is that I'm lazy, so I don't construct all dependencies in main.go manually but use wire to generate the construction of my dependency tree.
-
Go on AWS Lambda with API Gateway and AWS SAM
This guy fucks. Modular monoliths is the way. The service initialization/wiring part could be simplified (given a bigger project ofc) using something like https://github.com/google/wire. But everything else... *chef kiss* beautiful.
watermill
-
Microservices communication
I’ve successfully worked on projects using an asynchronous event-driven way of connecting services. I really like the decoupling of business logic and the events triggering it. I highly recommend https://github.com/ThreeDotsLabs/watermill to be more flexible when it comes to choosing the actual technology driving the async patter. It might be NATS today but requirements might change and you need to change. Watermill prepares you for this.
-
Public chatroom websocket project in Go
Highly recommend https://watermill.io lib for building async apps (using among others pub/sub patterns). It greatly decouples your code from the underlying technology and gives you the freedom to choose depending on the environment (e.g dev, prod). For dev or small scale purposes, it supports pub/sub purely based on go channels.
-
How did you solve the problem of transactions between different databases and services?
Look at this library: https://github.com/ThreeDotsLabs/watermill
-
Examples of using task scheduler with Go?
Watermill is a good pubsub abstraction. You can start with native go channels and grow into a cloud pubsub or Kafka/Pulsar if you need to.
-
Small EDA/Micro service Project
These conditions have led me to discover two packages watermill.io and go-kit. Both of these seem to do what I want and I am thinking of implementing the project using watermill and go Chanels and deploying to a server or some sort.
-
Event Observer Pattern in Go
github.com/ThreeDotsLabs/watermill package provides a framework for building event-driven applications. It allows easy communication between independent components by decoupling the sender and the receiver.
-
I've just started learning Golang, and I'm struggling to choose a framework.
My personal favorite tools: - https://github.com/go-kit/ for building services (although it's not necessary a great tool for prototyping) - https://github.com/gorilla/mux router (although it's been recently deprecated, so I'm looking for a similar, maintained library) - https://entgo.io/ ORM - https://watermill.io/ for messaging
- How to handle events: an interactive example of consumer groups
- I’m looking for a suggestion for a queuing library
-
Looking for a mature distributed task queuer/scheduler in go
Checkout https://watermill.io/
What are some alternatives?
fx - A dependency injection based application framework for Go.
eventhorizon - Event Sourcing for Go!
dig - A reflection based dependency injection toolkit for Go.
go-kit - A standard library for microservices.
gomock - GoMock is a mocking framework for the Go programming language.
Benthos - Fancy stream processing made operationally mundane
do - ⚙️ A dependency injection toolkit based on Go 1.18+ Generics.
pulse - ☁EventBus on Portable Pub/Sub Components☄
container - A lightweight yet powerful IoC dependency injection container for the Go programming language
wild-workouts-go-ddd-example - Go DDD example application. Complete project to show how to apply DDD, Clean Architecture, and CQRS by practical refactoring.
goioc/di - Simple and yet powerful Dependency Injection for Go
go-rabbitmq - A wrapper of streadway/amqp that provides reconnection logic and sane defaults