twitter-scale-mastodon
xtdb
twitter-scale-mastodon | xtdb | |
---|---|---|
9 | 18 | |
254 | 2,478 | |
3.9% | 1.5% | |
4.3 | 9.9 | |
19 days ago | 3 days ago | |
Java | Clojure | |
Apache License 2.0 | Mozilla Public 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.
twitter-scale-mastodon
- Rama is a testament to the power of Clojure
-
Everything wrong with databases and why their complexity is now unnecessary
I get what they're trying to do but I'm not sure this [0] syntax is the answer.
[0] https://github.com/redplanetlabs/twitter-scale-mastodon/blob...
-
Open-source Twitter-scale Mastodon implementation in 10k LOC
As best I can tell the Rama-awesomesauce is down in the backend modules, e.g. https://github.com/redplanetlabs/twitter-scale-mastodon/blob...
and the rest of the commentary I'll keep to my damn self
-
Rama 10k LOC Twitter-scale Mastodon implementation
GitHub link: https://github.com/redplanetlabs/twitter-scale-mastodon
Their announcement email reads...
> We've open-sourced our Twitter-scale Mastodon implementation on our Github. The implementation is 10k lines of code, which is 100x less code than Twitter wrote to build and scale their original consumer product, which was extremely similar. This repository can easily be adapted to make any Twitter-like social network.
> The project README includes instructions for running an instance locally on your machine, which is easy to do. To help with understanding the codebase, we've left many comments throughout the code.
> Finally, our blog post from two weeks ago is a deep-dive exploration of how this codebase works
https://blog.redplanetlabs.com/2023/08/15/how-we-reduced-the...
Previous discussion: https://news.ycombinator.com/item?id=37137110
There's also this "Introducing Rama" video: https://www.youtube.com/watch?v=jcvxGvzjLHg
xtdb
-
Jepsen: Datomic Pro 1.0.7075
Would love to see something similar for XTDB - https://xtdb.com/
-
Mariposa – A programming language with time-travel
You don't necessarily need to embed it into the programming language itself to get a ton of value. XTDB (https://github.com/xtdb/xtdb) offer a Clojure, Java and HTTP API for interacting with the database, which is bitemporal and lets you query the database for a specific point in time for example.
- Everything wrong with databases and why their complexity is now unnecessary
-
I made a basic python client and ORM for XTDB
XTDB is a bitemporal and dynamic relational database for SQL and Datalog, written in Clojure. The Python application I work on uses XTDB for its bitemporal and schema-less nature. There were a few Python clients that looked unmaintained and lacked some features we needed, so I tried to build something that would have fit our own requirements in hindsight. This includes:
-
Endatabas: A SQLite-inspired, SQL document database with full history
it's bitemporal, will be SQL-compatible, and also has another query-language - XTQL :
https://github.com/xtdb/xtdb/tree/2.x/dev/xtql
-
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 Now Free
You could look into http://xtdb.com/ if you want an open source alternative
-
Taming the Time: how to install & develop with XTDB
XTDB, or Cross-Time Database, is a distributed and transactional database system designed to handle complex and changing data with ease. It is based on a bitemporal model, which allows for the tracking of both the valid time and transaction time of data, enabling powerful and flexible querying capabilities. With XTDB, developers can work with immutable data structures, which simplifies development and improves reliability. Its graph query language, Datalog, provides a powerful and expressive way to navigate relationships within the data.
- Introduction to Datalog
- Clojure Turns 15 panel discussion video
What are some alternatives?
datahike - A fast, persistent, distributed & compositional Datalog engine for everyone.
datalevin - A simple, fast and versatile Datalog database
crux - General purpose bitemporal database for SQL, Datalog & graph queries. Backed by @juxt [Moved to: https://github.com/xtdb/xtdb]
datascript - Immutable database and Datalog query engine for Clojure, ClojureScript and JS
biff - A Clojure web framework for solo developers.
spring-data-jpa-temporal - Temporal auditing extension of the Spring Data JPA module
entish - Entish is a declarative Datalog-like language for formal RPG rules
nippy - The fastest serialization library for Clojure
eacl - EACL: Enterprise Access Control Lists
clojurelog - Matrix of Open Source Clojure Datalog Databases
coffi - A Foreign Function Interface in Clojure for JDK 19.
homebase-react - The React state management library for write-heavy applications