-
Notifications
You must be signed in to change notification settings - Fork 4
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
Technology Stack #2
Comments
@microadam primus looks very nice. |
I'd also go for primus. Would allow us to switch the underlying real time framework later if we BTW for reference: Travis uses a combination of pusher and amqp for this. |
Do you see using a REST and a socket API together, since not everything needs to be realtime? |
Yes I think it makes sense to use the realtime communication channel (= the socket API) only when you really need it. In my opinion this is only needed for streaming drone output to strider and from strider to the browser. Everything else can and should be done via REST (job distribution / job cancellation etc.). |
Agreed. And with Hapi's injection API we can make it all REST, and then reuse the REST endpoints with the sockets. It's a win-win. |
@knownasilya Hapi's injection API? You mean Shot? |
Yeah (still figuring out how Hapi is architected). I'm not sure about this yet. Would also love for examples on how to structure a Hapi app. |
I might have something of interest here in the next couple of days. What are your thoughts on API authentication and auth in general for Strider? |
Token auth with API tokens for external resources like drones. |
JWT? Or something home-cooked? |
Yes, JWT. |
Ahh cool, let me think. I might have something that will make this 1000X easier and faster based on Hapi |
Is there any reason for JWT instead of plain random tokens? |
JWT can carry data along, which is super useful for things like drones and plugins. Plus you can limit them by recipient and have an expiration time. |
I'm not so sure about seneca microservices. They seem to complicate everything quite a deal for almost no benefit. Core will run on one machine and so far there are no plans to split it out, nor would there be any reason to. It seems like a pre-mature optimization that hinders readability, understandability, and limit the number of contributors that could come in and start contributing. |
@knownasilya RE Seneca. It's awfully convoluted for something as small as this, until core is split across multiple systems and does many different things simultaneously it would over complicate and dissolution core contributors and open source contributors. However much I love NearForm this project isn't mature enough to expand with micro services, that's pretty much what the drones are for IIUC |
We don't necessarily need microservices to structure core itself.
The third point is very important to me since it increases stability tremendously if individual BTW: I am currently working towards getting strider2 (or at least what I think should be strider2) into a state that can actually be used for a simple use case (getting PR notifications from github, transforming these into jobs, executing the jobs on drones and streaming the progress / results to a simple ui). IMHO most of this functionality should be implemented as plugins and following what I wrote previously thus be implemented as microservices. Concerning your criticism that people wouldn't understand microservices / senca:
|
After using seneca for a while I have to admit that it might get a little bit tricky Since, I have to refactor quite a bit of code: are there any objections against using at least some ES6 (harmony) features? |
I think we can assume usage of iojs (no flags required for most stable es6 features) with this version, which will be the next major version of node anyway. I'm not completely sold on waterline yet, especially since the main contributors aren't so active lately and it's not 1.0 yet. I'd rather continue with the format we have now: |
@phiros I'd like development to be more open, so if you are working on something start the PR early, even before you have anything changed yet. |
Ok will do |
HTTP with streams?
HTTP long-poll?
RabbitMQ?
etc..
This is regarding core<->drone
The text was updated successfully, but these errors were encountered: