Skip to content
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

Missing part of README: using Graph for building the whole application from "services" #17

Open
si14 opened this issue Jan 10, 2014 · 6 comments

Comments

@si14
Copy link

si14 commented Jan 10, 2014

There were a lot of mentions in various talks and mail lists that Prismatic uses Graph to structure it's applications and not only "computation flow" in a single part of a program. There is even a short example in tests. However, as far as I know, there is no definitive overview of how to really build an application this way.

There is a non-Prismatic library to do something similar, but how does that library differs from what you do?

Personally, I didn't find the perfect way to structure Clojure apps, everything that I've tried had some serious downsides. It looks like I'm not alone in this. Is it possible to extend this project's README to include more details on the topic?

@w01fe
Copy link
Member

w01fe commented Jan 10, 2014

Thanks for your interest in this. We know this is missing currently in Graph, and it's been something we have planned to release for a while. But, there are a number of additional pieces that fit together to make our service infrastructure useful, and our plan has been to release these together with an example service and such -- we just have unfortunately not had the resources to do this yet. We hope to release our version soon, but in the mean time system-graph seems like a reasonable alternative.

Concretely, our setup is composed of:

  • Graph, plus something like component to allow shutting down of node resources. system-graph seems to capture this aspect well.
  • Service configuration files, with a built-in notion of things like service names, runtime configuration modes, and so on.

@niquola
Copy link

niquola commented Jan 18, 2014

👍

2 similar comments
@kramano
Copy link

kramano commented Jan 20, 2014

👍

@tcrayford
Copy link

+1

@cprice404
Copy link
Contributor

We had a similar need at Puppet Labs, though we have slightly different requirements due to the fact that we ship on-premise software and a lot of the existing things seem to lend themselves more easily to a SaaS environment. We wrote a framework that uses Graph for managing dependencies, has a protocol for service lifecycles, and allows you to use clojure protocols to specify the interfaces for custom services that you write.

I'm sure the pure prismatic solution will be fantastic (as are the current libraries you guys ship!), but if anyone is interested in the interim, ours is called trapperkeeper.

@tangrammer
Copy link
Contributor

+1

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

7 participants