Go-CQRS-EventSourcing-Microservice
kafka-go
Go-CQRS-EventSourcing-Microservice | kafka-go | |
---|---|---|
1 | 13 | |
86 | 7,169 | |
- | 1.7% | |
0.0 | 6.7 | |
almost 2 years ago | 13 days ago | |
Go | Go | |
- | 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.
Go-CQRS-EventSourcing-Microservice
-
Go EventSourcing and CQRS with PostgreSQL, Kafka, MongoDB and ElasticSearch πβ¨π«
Source code you can find in GitHub repository. The main idea of this project is the implementation of Event Sourcing and CQRS using Go, Postgresql, Kafka for event store and Mongo, ElasticSearch for read projections. Previously have written same articles where implemented the same microservice using Go and EventStoreDB, and Spring, as written before, repeat, think EventStoreDB is the best choice for event sourcing, but in real life at some projects we usually have business restrictions and for example usage of the EventStoreDB can be not allowed, in this case, think postgres and kafka is good alternative for implementing our own event store. If you don't familiar with EventSourcing and CQRS patterns, the best place to read is microservices.io, blog and documentation of eventstore site is very good too, and highly recommend Alexey Zimarev "Hands-on Domain-Driven Design with .NET Core" book.
kafka-go
-
book about golang and kafka
There are two main libraries that people use to write clients Confluent Kafka and segment io kafka
-
Klient - a native, statically-compiled, command line client for Kafka
Unlike the standard scripts, and many binary clients, it's a native, statically-compiled, binary. It uses segmentio/go-kafka internally, which means CGO can be disabled during compilation.
-
Is Kafka the Key? The Evolution of Highlight's Ingest
Scaling up our producers/consumers proved to be more cost-effective than adding more CPU/brokers to the Kafka cluster. To accomplish this, we used the segmentio/kafka-go client library which provides an excellent abstraction for interacting with the cluster and will handle data compression completely transparently.
-
Go EventSourcing and CQRS with PostgreSQL, Kafka, MongoDB and ElasticSearch πβ¨π«
PostgeSQL as event store database Kafka as messages broker gRPC Go implementation of gRPC Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MongoDB MongoDB database Elasticsearch Elasticsearch client for Go. Echo web framework Kibana Kibana is data visualization dashboard software for Elasticsearch Migrate for migrations
-
Kafkagosaur - First release
I want to announce the first release of a kafkagosaur, a new Kafka client. It's built using WebAssembly and binds to the kafka-go library. The first release includes functionality to read and write Kafka messages and SASL support.
-
Switching from Celery and Python to Go
Use the Segment Kafka library, not Sarama, itβs much easier to use https://github.com/segmentio/kafka-go
-
I share my authentication server.
Kafaka - kafka-go, Debezium Outbox
-
Hunting down a C memory leak in a Go program
Segment learned quite some time ago that librdkafka-go has problems like these (and doesnβt support Contexts either), so they wrote a pure Go replacement instead. https://github.com/segmentio/kafka-go
-
Go, Kafka and gRPC clean architecture CQRS microservices with Jaeger tracing ππ§βπ»
In this article let's try to create closer to real world CQRS microservices with tracing and monitoring using: π Kafka as messages broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MongoDB Web and API based SMTP testing Redis Type-safe Redis client for Golang swag Swagger for Go Echo web framework
- confluent-kafka-go or Shopify/sarama
What are some alternatives?
grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC
sarama - Sarama is a Go library for Apache Kafka. [Moved to: https://github.com/IBM/sarama]
goes - goes is an event-sourcing framework for Go.
Confluent Kafka Golang Client - Confluent's Apache Kafka Golang client
validator - :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
franz-go - franz-go contains a feature complete, pure Go library for interacting with Kafka from 0.8.0 through 3.6+. Producing, consuming, transacting, administrating, etc.
pdash - orders dashboard in microservices architecture
retry-go - Simple golang library for retry mechanism
jaeger - CNCF Jaeger, a Distributed Tracing Platform
kafka-rust - Rust client for Apache Kafka
shop-golang-microservices - Practical microservices based on different software architecture and technologies like Golang, CQRS, Vertical Slice Architecture, Docker, RabbitMQ, OpenTelemetry, Postgresql, ...
cobra - A Commander for modern Go CLI interactions