Comments (7)
Removing up-for-grabs
as an implementation is underway
from equinox.
@bartelink Has there been any consideration of using https://github.com/JasperFx/Marten as a backing store?
from equinox.
Hey Nat, good question. While I'm aware of Marten from the blog and a podcast or two, I'm unfamiliar with the details of what Marten does wrt event sourcing and/or whether it would mesh well. Wild guess says it brings a programming model and an opinion to the table to a greater degree than SSS does.
Clearly Postgres is a very suitable target though. (Also is it Marten Postgres-only? SQL Server / Azure SQL would be an important DB to support)
I guess the key to answering your question would be to ask whether Marten offers an easier path to integration as a first class Equinox adapter; I'd be delighted to hear anyone's insight wrt that. (other considerations are having low dependencies, and the potential to integrate detailed metrics and logging)
eta: This does not necessarily need to be an either/or - if it fits, there is no problem in having both in the end. The above is simply the high level decision process I'd be using to decide where to start wrt supporting SQL Server and Postgres (with a key element being standing on the shoulders of giants in terms of finding a well-proven set of tests, SQL Schema and community)
from equinox.
Quick scan says:
+: excellent docs, it seems the ES APIs would facilitate an easy initial implementation
-: there's a heck of a lot to Marten's codebase as it's doing all those things - that leads to lots of dependencies and code to traverse which would not be relevant for Equinox
-: not low on dependencies ?
0: the projections stuff in the cosmos
branch and how it will integrate into https://github.com/jet/equinox/wiki/Cosmos-Storage-Model will likely be applicable to Postgres and SQL Server too so that aspect is not beneficial)
Marten is clearly a very capable system with good docs, community and tests but my sense/bias that it's already trying to do a lot of things (and that this fact would make an integration problematic) isn't reduced by my scan
from equinox.
@bartelink Thanks for the write up. I don't necessarily think it's a good idea either, I just know that there's a big overlap in features and was wondering if it had been looked at as a backing store. Thanks for taking the time to dig in a bit.
from equinox.
.@NatElkins it seems that CosmoStore is gaining support for Marten https://github.com/Dzoukr/CosmoStore/tree/master/src/CosmoStore.Marten
(I got a few hours into a spike on SSS after the above discussion; and my bias remains that this is going to be the best fit, should I end up in a space where I have spare capacity to attack this need)
This issue remains very much open should anyone wish to contribute; I believe the caching, snapshotting, benchmarking support in here and potential to cleanly add cold storage strategies remain a very good fit for using a SQL based store with. (By the same token, if anyone is interested, it it's not a problem to have support for Marten and SSS in Equinox)
from equinox.
See #168
from equinox.
Related Issues (20)
- V2: constrain dependencies HOT 1
- V2: Cosmos: Backport LogSink signature change HOT 2
- QUESTION: How do you support regulatory requirements to purge persisted Personally Data (e.g. GDPR)? HOT 4
- Cosmos Table support HOT 2
- Cosmos: Fix unfold event numbering
- The canonical definition of AwaitTaskCorrect is incorrect HOT 4
- Add LoadOption.RequireLeader
- missed published packages HOT 6
- StreamId.gen2/3 - consider revert to struct tuples HOT 1
- StreamNotFoundException when trying to add Events to a new Stream with EventStoreDb HOT 5
- Is there a specific message-db version that one has to use? HOT 8
- DynamoDB: EventsContext fails to read when tip not read HOT 1
- Feature: ReadThrough mode HOT 1
- DynamoStore: Needs to write through tip to guarantee order on DDB streams
- Core: NullReferenceException when using cached reads
- DynamoStore: Use ReturnValuesOnConditionCheckFailure to implement Resync
- refactor: Label contexts unambiguously
- Rename AsyncCacheCell to TaskCell
- CosmosStore: Complain about large partition keys if not configured
- Remove Compaction from Domain terms
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from equinox.