fx
dapr
Our great sponsors
fx | dapr | |
---|---|---|
31 | 78 | |
5,175 | 23,255 | |
3.3% | 1.1% | |
8.2 | 9.7 | |
5 days ago | 6 days ago | |
Go | Go | |
MIT License | Apache License 2.0 |
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.
fx
-
I write HTTP services in Go after 13 years (Mat Ryer, 2024)
I found fx(https://github.com/uber-go/fx) to be a super simple yet versatile tool to design my application around.
All the advice in the article is still helpful, but it takes the "how do I make sure X is initialized when Y needs it" part completely out of the equation and reduces it from an N*M problem to an N problem, ie I only have to worry about how to initialize individual pieces, not about how to synchronize initialization between them.
I've used quite a few dependency injection libraries in various languages over the years (and implemented a couple myself) and the simplicity and versatility of fx makes it my favorite so far.
-
go-ecommerce-microservices: A practical e-commerce microservices, built with cqrs, event sourcing, vertical slice architecture, event-driven architecture.
Some of the features: - ✅ Using Vertical Slice Architecture as a high level architecture - ✅ Using Event Driven Architecture on top of RabbitMQ Message Broker with a custom [Event Bus](pkg/messaging/bus/) - ✅ Using Event Sourcing in Audit Based services like [Orders Service](services/orders/) - ✅ Using CQRS Pattern and Mediator Patternon top of Go-MediatR library - ✅ Using Dependency Injection and Inversion of Controlon top of uber-go/fx library - ✅ Using RESTFul api with Echo framework and using swagger with swaggo/swag library - ✅ Using Postgres and EventStoreDB to write databases with fully supports transactions(ACID) - ✅ Using MongoDB and Elastic Search for read databases (NOSQL) - ✅ Using OpenTelemetry for collection Distributed Tracing with using Jaeger and Zipkin - ✅ Using OpenTelemetry for collection Metrics with using Prometheus and Grafana - ✅ Using Unit Test for testing small units with mocking dependent classes and using Mockery for mocking dependencies - ✅ Using End2End Test and Integration Test for testing features with all of their real dependeinces using docker containers (cleanup tests) and testcontainers-go library
-
Gorilla,wow
any take on https://github.com/uber-go/fx?
-
App init and graceful watch lib recommendations ?
I’m not sure of much that can do all of that - maybe it’s a use case for https://github.com/uber-go/fx
-
How normal is it to stare at your screen, getting nothing done when stuck and waiting for help?
If I still find myself stuck/waiting, I switch over to studying more about our team's main language Go. Currently looking around at Fx ( https://github.com/uber-go/fx ). Which is interesting, though I doubt we'll actually migrate anything for it, but might make a neat lunch and learn topic.
-
Zerolog printing logs multiple times
Hello gophers, I am using https://github.com/uber-go/fx and https://github.com/rs/zerolog for logging.
-
Does this project structure make sense?
Also, I like to use Uber FX for my DI stuff. You can check it out here:https://github.com/uber-go/fx
-
As a Go programmer, what design pattern, programming techniques have you actually used, implemented regularly in your workplace which made your life much easier?
I only have private and work repos... But I use Uber fx. https://github.com/uber-go/fx
-
Does Golang has any framework like Springboot?
Spring Boot is notable for its dependency injection / inversion of control. The closest Go has to this is Uber's Fx which also includes some lifecycle management.
-
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.
dapr
- Dapr: Microservices API
-
Interesting projects using WebAssembly
The following two examples are open-source projects maintained by Fermyon with contributions from companies like Microsoft and SUSE. The first is Spin, which allows us to use WebAssembly to create Serverless applications. The second, SpinKube, combines some of the topics I'm most excited about these days: WebAssembly and Kubernetes Operators :) The official website says, "By running applications in the Wasm abstraction layer, SpinKube offers developers a more powerful, efficient, and scalable way to optimize application delivery on Kubernetes." By the way, this post shows how to integrate SpinKube with Dapr, another technology I'm very interested in, and I should write some posts soon.
-
The Ambassador Pattern
Speaking of this has anyone had much experience with Dapr (https://dapr.io/) before?
I always thought this was a particularly interesting approach from Microsoft where they use this pattern to essentially take the complexity of micro services and instead try and keep it as simple as a normal .NET application but (and I think this is the clever part) in both a vendor and language neutral way.
But all of a sudden it means you can start removing all kinds of cruft and random SDKs from your codebase and push almost all of your interactions with the outside world into something like this .
-
Comparing Azure Functions vs Dapr on Azure Container Apps
Azure Container Apps hosting of Azure Functions is a way to host Azure Functions directly in Container Apps - additionally to App Service with and without containers. This offering also adds some Container Apps built-in capabilities like the Dapr microservices framework which would allow for mixing microservices workloads on the same environment with Functions.
-
Episode 150: myNewsWrap – SAP and Microsoft
Having containers is nice but everything (well ... nearly everything 😉) gets better with Dapr as an outstanding tool for app development in the container-based area. Here we go what might be worth a look:
-
Using DARP in production?
Anyone using or planing to use darp Distributed application platform runtime as a microservices platform? https://dapr.io/
-
Ensuring Seamless Operations: Troubleshooting and Resolving Dapr Certificate Expiry
A CNCF project, the Distributed Application Runtime (Dapr) provides APIs that simplify microservice connectivity. Whether your communication pattern is service to service invocation or pub/sub messaging, Dapr helps you write resilient and secured microservices. Essentially, it provides a new way to build microservices by using the reusable blocks implemented as sidecars.
-
Understanding the Dapr workflow engine and workflow patterns in .NET (1hr webinar)
Dapr is a runtime that implements common patterns such as pub/sub, state storage, etc. It runs as a sidecar to your app. Your app then interfaces with it using an sdk or http calls to use said patterns instead of implementing those patterns directly yourself. Seems pretty cool to me, but you can find out more at https://dapr.io/.
-
Is Dapr actually used by anyone?
- Over 21k stars on GitHub, see the core repo and devstats.
-
Modular Architecture Design question | Re-using modules in multiple applications
I would like to build modules, either in a modular monolith style, or in a microservice style using DAPR and/or Tye.
What are some alternatives?
dig - A reflection based dependency injection toolkit for Go.
MassTransit - Distributed Application Framework for .NET
wire - Compile-time Dependency Injection for Go
camel-k - Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers
wire - Strict Runtime Dependency Injection for Golang
tye - Tye is a tool that makes developing, testing, and deploying microservices and distributed applications easier. Project Tye includes a local orchestrator to make developing microservices easier and the ability to deploy microservices to Kubernetes with minimal configuration.
container - A lightweight yet powerful IoC dependency injection container for the Go programming language
OpenFaaS - OpenFaaS - Serverless Functions Made Simple
captcha - :sunglasses:Package captcha provides an easy to use, unopinionated API for captcha generation
Nomad - Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.
wild-workouts-go-ddd-example - Go DDD example application. Complete project to show how to apply DDD, Clean Architecture, and CQRS by practical refactoring.
NServiceBus - Build, version, and monitor better microservices with the most powerful service platform for .NET