Event Store
datalevin
Our great sponsors
Event Store | datalevin | |
---|---|---|
5 | 15 | |
5,090 | 1,030 | |
1.1% | 3.0% | |
9.5 | 9.6 | |
3 days ago | 3 days ago | |
C# | Clojure | |
GNU General Public License v3.0 or later | Eclipse Public License 1.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.
Event Store
-
Event Store State of the Art
I've been doing some research and found this: https://github.com/EventStore/EventStore
-
if you had to restart at 0 knowledge what would you do?
C#: In Europe, Java is still strong but many trading firms use C# because of the strong Microsoft culture in Europe, as well as because of strongly supported C# libraries like say EventStore, which tends to be used for the matchmaking engines for stock exchanges (especially that exchange matchmaking problem is basically SMR). And skimming over the code, it has Paxos implemented too, making it good for dealing with partial failures (failover), essential for any HFT/trading firm. C#'s also the biggest ecosystem that many of the breakthrough java tech mentioned earlier was first ported to.
- Call for Help - Open Source Datom/EAV/Fact database in Rust.
-
Event sourcing two years later (almost)
Support for eventstore.com eventstore. esdb
-
3 reasons to adopt Event Sourcing
Where's the catch, then? Well, there's a couple of catches, in fact. First of all, in a distributed setting, appending data to a log isn't that easy. First, you need to make your log distributed. Again, Kafka/Cassandra/EventStore make this possible, however, whenever you start dealing with distributed data, you‘re introducing new operational and implementation complexity.
datalevin
- Datalevin: A simple, fast and versatile Datalog database
-
Is Datomic right for my use case?
You can also consider other durable Datalog options like datahike or datalevin which can work either as lib (SQLite style) or in a client-server setup; if you want to play with bi-temporality XTDB is a rock solid option with very good support and documentation.
- Datomic is free
-
benefits of clojure for web development over Haskell
There are some Clojure-ecosystems things that are pretty cool, too, that you'd probably miss going into Haskell. lacinia is an extremely cool GraphQL library, and there are a variety of interesting datalog-based datastores which are spiritual descendents of Datomic, notably xtdb (formerly crux) and datalevin. Also as noted, you can write the front-end in ClojureScript if you want to, and there are a lot of cool libraries for that as well.
- SQLite Internals: Pages and B-trees
-
Call for Help - Open Source Datom/EAV/Fact database in Rust.
There are plenty of open source Datomic Inspired databases. Check out https://github.com/juji-io/datalevin and scroll down all the way down to “Alternatives”. There was even the beginning of a rust one by Mozilla: https://github.com/mozilla/mentat
- Datalevin ships performant fulltext search for its KV and Datalog stores
-
T-Wand: Beat Lucene in Less Than 600 Lines of Code
The benchmarks in question have several implementation issues, I reported them on GitHub.
https://github.com/juji-io/datalevin/issues/created_by/caval...
-
Choice of NoSQL database: XTDB vs MongoDB
Highly recommend you give https://github.com/juji-io/datalevin a chance. You can use it both as a key-value and/or relational datalog store (like datomic) but it’s very simple to set up and blazing fast!
-
Ask HN: Why are relational DBs are the standard instead of graph-based DBs?
Unlike some other commenters, I agree that graph models are usually a better fit for most data than relational models. There's been some interesting work in recent years developing this idea: in the Clojure world there's Datomic, XTDB, and a host of competitors, all of which build on work from Semantic Web/SPARQL/triplestores and logic programming. Some are even intended to be used as primary datastores: they support some amount of schema and constraints, have well-defined consistency and ACID guarantees, etc. This makes them unlike graph databases like Neo4J and others, which fill an architectural role more like Elasticsearch as a read-optimization tool. Here's an interesting talk making a case for triple-based databases.
What are some alternatives?
Marten - .NET Transactional Document DB and Event Store on PostgreSQL
xtdb - An immutable database for application development and time-travel data compliance, with SQL and XTQL. Developed by @juxt
LiteDB - LiteDB - A .NET NoSQL Document Store in a single data file
datahike - A durable Datalog implementation adaptable for distribution.
Streamstone - Event store for Azure Table Storage
datascript - Immutable database and Datalog query engine for Clojure, ClojureScript and JS
Apache Ignite - Apache Ignite
Apache AGE - Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL. [Moved to: https://github.com/apache/age]
Firebase.Net - C# wrapper over Firebase database REST API
asami - A graph store for Clojure and ClojureScript
Apache Cassandra - Mirror of Apache Cassandra
grakn - TypeDB: the polymorphic database powered by types