Skip to content

Comments about use in production #44

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

Closed
3noch opened this issue Sep 8, 2016 · 9 comments
Closed

Comments about use in production #44

3noch opened this issue Sep 8, 2016 · 9 comments

Comments

@3noch
Copy link
Contributor

3noch commented Sep 8, 2016

I'm hoping to use Project-M36 in a (small) production-level application in the next few months. Would you say Project-M36 is ready? My application will be small and have relatively low demand on performance, but I want to use it as a trial run in hopes of using this in bigger projects in the future. Do you have any advice?

@agentm
Copy link
Owner

agentm commented Sep 8, 2016

I would say a small starter project would be the perfect way to get your feet wet with Project:M36.

I am not aware of any issues that would prevent use of Project:M36 in practice, but I do have some niceties in the pipeline (like #33). Also, currently, there is no daemon mode- that would be useful for real installations.

Project:M36 has a lot of interfaces (websocket server, Haskell server, tutd, persistent driver, in-memory mode). Which one do you plan to use?

On a related note, perhaps it is time to create a mailing list for Project:M36 for discussion purposes.

@3noch
Copy link
Contributor Author

3noch commented Sep 8, 2016

Awesome! I can't wait. I still have a lot to learn about the project but I'll be writing the application in Haskell so I'd like to quickly get DB features without having the overhead of a different database system. I also think Project-M36 holds a lot of promise to simplify the DB layer. At this point my guess is that I'll use the Haskell server and possibly the websocket server as well.

Yes a mailing list would be swell. Alternatively/additionally you could have a Gitter, Slack, or IRC chat room.

@agentm
Copy link
Owner

agentm commented Sep 12, 2016

Hi @3noch, it occurred to me that there is at least one problematic issue without a clear resolution yet. It's being tracked as #43.

@3noch
Copy link
Contributor Author

3noch commented Sep 13, 2016

What about migrations? Does Project: M36 have a story for that yet?

@agentm
Copy link
Owner

agentm commented Sep 13, 2016

If you are referring to migrations across Project:M36 releases, then, short answer: no, the on-disk format is just Binary structures and we plan something better-suited once some other related features are in place.

If you are referring to schema migrations, then Project:M36 schemas benefit from the same transaction isolation as any relational database context expressions (update, delete, insert). Users are responsible for adjusting their client code for accommodating schema changes, though. One exciting feature coming down the pipeline is "isomorphic schemas" which will allow disparate clients to depend on different variants of the same underlying database so that client migrations can be phased in.

Do you have a more specific use-case in mind? I would be glad to hear more about it.

@3noch
Copy link
Contributor Author

3noch commented Sep 13, 2016

Thanks. I was referring to schema migrations.

Wow. Isomorphic schemas sounds incredibly awesome. Are schema changes able to be done inside of a transaction (like Postgres allows)?

@agentm
Copy link
Owner

agentm commented Sep 13, 2016

Project:M36 schema changes are completely isolated transactionally, even more so than postgresql, which holds locks for schema changes. Also, schemas can be branched and merged alongside their data. In this context, there is no difference between DML and DDL.

@3noch
Copy link
Contributor Author

3noch commented Sep 13, 2016

That's pure awesomeness.

@agentm
Copy link
Owner

agentm commented Nov 14, 2016

A first pass at isomorphic schemas is now in available in the master branch with documentation.

@agentm agentm closed this as completed Nov 14, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants