Skip to content
This repository has been archived by the owner on Feb 25, 2019. It is now read-only.

mongodb support #69

Closed
adrai opened this issue Feb 10, 2015 · 2 comments
Closed

mongodb support #69

adrai opened this issue Feb 10, 2015 · 2 comments

Comments

@adrai
Copy link

adrai commented Feb 10, 2015

How far is anvil-connect to support mongodb too?

@christiansmith
Copy link
Member

Can you share some of the reasons you're thinking of using Mongo?

Theoretically it would be fairly easy to port. However, there is no current plan to do so. We don't believe Mongo is the right choice as the primary database for this project for a variety of reasons (ultimately Redis isn't the final answer either).

Philosophically, Anvil Connect is not an application. It's a piece of infrastructure that supports applications. In line with that reasoning, Anvil should take responsibility for persistence internally, using an embedded database like lmdb or leveldb.

The advantage of this approach is that there are no external dependencies. Deployment would be simpler and cheaper. The main disadvantage is that we have to deal with horizontal scalability of persistence in-house as well. For example, implementing dynamo or a similar pattern. This a longer term vision that many will argue is out of reach. I'm personally excited to make a branch and start experimenting as time permits.

Operational persistence aside, the data shouldn't be locked up in Anvil. One feature we've discussed is writing to multiple data stores simultaneously while reading only from the primary one. I can't be certain how difficult this would be in practice until we take a closer look.

Feedback and ideas are appreciated :)

@adrai adrai closed this as completed Feb 12, 2015
@adrai
Copy link
Author

adrai commented Feb 12, 2015

Thanks, your answer was perfect!

Il giorno 12-feb-2015, alle ore 18:15, Christian Smith <notifications@github.commailto:notifications@github.com> ha scritto:

Can you share some of the reasons you're thinking of using Mongo?

Theoretically it would be fairly easy to port. However, there is no current plan to do so. We don't believe Mongo is the right choice as the primary database for this project for a variety of reasons (ultimately Redis isn't the final answer either).

Philosophically, Anvil Connect is not an application. It's a piece of infrastructure that supports applications. In line with that reasoning, Anvil should take responsibility for persistence internally, using an embedded database like lmdb or leveldb.

The advantage of this approach is that there are no external dependencies. Deployment would be simpler and cheaper. The main disadvantage is that we have to deal with horizontal scalability of persistence in-house as well. For example, implementing dynamo or a similar pattern. This a longer term vision that many will argue is out of reach. I'm personally excited to make a branch and start experimenting as time permits.

Operational persistence aside, the data shouldn't be locked up in Anvil. One feature we've discussed is writing to multiple data stores simultaneously while reading only from the primary one. I can't be certain how difficult this would be in practice until we take a closer look.

Feedback and ideas are appreciated :)

Reply to this email directly or view it on GitHubhttps://github.com//issues/69#issuecomment-74112799.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants