-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Why tightly coupled to a sql db? #71
Comments
Great question. You may want https://github.com/go-fed/activity/tree/master/pub instead ( In contrast, APCore is geared to be a server framework. It is intended to be a quicker way to bootstrap a traditional single-server application from nothing, where developers can focus more on delivering the vocabulary & side effects, web service, and frontend. As such, there are more practical and opinionated decisions that have to be made, and the out-of-the-box If you see a way to abstract Note that APCore is still under active development without having an initial release, and as such I do not consider it ready for actual use. I am in parallel attempting to be my own client and use it to bootstrap an application. So it is a great time to entertain better ideas. (Note I've edited this a few times, as I've internalized your inquiry) |
All very good points! I suspect as such. 👌 I just really hate SQL database of all kinds really, they're overkill for what you often need, cumbersome to setup and hard to maintain properly. If we abstract away
Just as a contrived example, I don't know terribly too much about the activity pub vocab/terms yet or the codebase. But this way it allows me as a developer perhaps interested in exploring activitypub to quickly prototype up a server and just implementing the required specific interfaces rather than a whole SQL database. Does this make sense? And the default implementation can still use SQL under the hood, as it will already satisfy the interfaces if you make them match (more or less). I suspect refactoring will be required somewhat. |
In other words I prefer the abstraction to be a |
I've been thinking on this the past day. Let me get some thoughts down -- you may have already thought this through, though hopefully it isn't too repetitive. Expanding on above -- The Today, it happens that The question becomes: how to approach this? A constraint I've imposed on myself is: I would like for the details of "which" and "what kind" of actual database to connect to, to be configuration driven. That made the Preserving this constraint means that we need a That's about as far as I've gotten in defining the problem in context of existing constraints. I don't have a concrete technical proposal at the moment. To close, I'd like to revisit your proposed example:
with the above context, it is clear that this proposed interface is a "driver" -- the glue between Once we've:
Then we'd need: I would love to hear your thoughts on all the above. |
Why have you made the decision to tightly couple the framework to a SQL database? An implementor not only has to satisfy the interface requirements of
app.Application
but alsoDatabase
andTxbuidler
.This makes it quite hard for implementers to satisfy the interface without also doing a lot of "unnecessary" work (I fail to see how SQL has anything to do with ActivityPub).
Are there any future plans to simplify the interface requirements and remove the tight coupling on SQL?
The text was updated successfully, but these errors were encountered: