go-memdb
dtm
Our great sponsors
go-memdb | dtm | |
---|---|---|
3 | 20 | |
3,070 | 5,149 | |
1.7% | - | |
3.6 | 9.8 | |
2 months ago | about 2 years ago | |
Go | Go | |
Mozilla Public License 2.0 | BSD 3-clause "New" or "Revised" 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-memdb
-
I created an in-memory SQL database called MemSQL as a learning project
For another in-memory database example, you could also check out https://github.com/hashicorp/go-memdb, but it's based on a radix tree implementation.
-
Why use a real K/V database over a MapStore?
I just think its a glorified map. Yeah, for example go-memdb list some of its advantages in their https://github.com/hashicorp/go-memdb/blob/master/README.md README. But it is not clear whether you gain any performance gain over a map except for avoiding the locking as explained.
-
An Unlikely Database Migration
>So we invested what probably amounts to two or three weeks of engineering time into designing in-memory indexes that are transactionally consistent
I'll be interested to see that part if it does get open sourced. I've used https://github.com/hashicorp/go-memdb which sounds similar.
dtm
-
How to reliably sync 2 application databases
- using a distributed transaction framework (like https://github.com/dtm-labs/dtm)
- Examples code for DTM Saga
- dtm 1.15.1 Released – A lightweight workflow engine to orchestrate micro-services for distributed transactions.
-
Use workflow to handle distributed transactions
But in this article, we introduce a workflow pattern in github.com/dtm-labs/dtm. Under this pattern, a mixture of XA, SAGA and TCC can be applied to different branches in a single distributed transactions, allowing users to customize most of the contents of a distributed transaction, providing great flexibility.
-
How to elegantly implement a multi-database outbox pattern
The open source distributed transaction framework https://github.com/dtm-labs/dtm has a two-stage message pattern inside that handles this problem very well. The following is an example of the use of an interbank transfer operation.
-
How to Manage Anomalies in Saga Pattern in Microservices
The above Sub-transaction Barrier technique, when used in conjunction with the distributed transaction framework https://github.com/dtm-labs/dtm, has been made available in several language SDKs, with the following example code in Go.
-
Building financial integration with Cadence in doordash
Maybe you can take a look at github.com/dtm-labs/dtm which provide built-in TCC pattern
-
Understanding XA Transactions With Practical Examples in Go
Distributed XA transactions can solve the above business problem. This article presents a solution based on dtm-labs/dtm. DTM is a popular distributed transaction framework which supports XA, Saga, OutBox, and TCC patterns.
-
dtm 1.13.5 Released – A distributed transaction framework that supports saga, tcc, xa, outbox patterns.
Github: https://github.com/dtm-labs/dtm
-
How to Implement a Distributed Transaction Across Mysql, Redis, and Mongo
This article gives an example of implementing a distributed transaction across multiple store engines, Mysql, Redis and Mongo. This example is based on the Distributed Transaction Framework https://github.com/dtm-labs/dtm and will hopefully help to solve your problems in data consistency across microservices.
What are some alternatives?
dbbench - 🏋️ dbbench is a simple database benchmarking tool which supports several databases and own scripts
Seata - :fire: Seata is an easy-to-use, high-performance, open source distributed transaction solution.
badger - Fast key-value DB in Go.
go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
buntdb - BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
temporal - Temporal service
bolt
InfluxDB - Scalable datastore for metrics, events, and real-time analytics
cockroach - CockroachDB - the open source, cloud-native distributed SQL database.