Closed rzats closed 7 years ago
Thanks @rzats - can you talk to @chuwy please about the Iglu Scala Client...
Removing @jbeemster as a reviewer as he is on holiday
@chuwy can you do the first pass review please?
@alexanderdean yes, will do.
I'm also sorry that you have to work with this Iglu/play-json
combination as most of functionality you need was already implemented in iglu core, but for json4s and circe libraries. We never used play json before.
I'm also sorry that you have to work with this Iglu/play-json combination as most of functionality you need was already implemented in iglu core, but for json4s and circe libraries. We never used play json before.
What's the reason for using Play JSON?
@alexanderdean it was picked by intern who started to write sauna, no other reasons.
@alexanderdean @chuwy: this is ready for another round of reviews.
A few notes:
ClassTag
field due to type erasure. Will make another attempt at solving this later.iglu-scala-client
version resolves fine, but causes critical internal errors when actually used (see test results). The dependencies for that library need to be updated ASAP - the code should work fine when that's done.Thanks - @chuwy can you do another pass?
@chuwy: I've separated the function into two for now. Still not an ideal solution (the same amount of match blocks and LOC is the same), but it's not as nested - and allows us to programmatically generate Commands for tests etc.
Hey @rzats,
I just pushed my proposal for #75 in https://github.com/snowplow/sauna/commit/b3c434969a64189949fdf16bcf7391e8b66625f6 (I didn't run tests, but it should be trivial to modify them).
I need to admit that parametrizing all events in 0.1.0 was a slight over-engineering. Type parameters there don't add any typesafety and don't generalize anything. Designer of responder always knows what exactly observer events he can parse into responder events, so type parameter here don't make much sense, usual subtyping works fine. This all becomes even more important taking in account akka design, erasure, etc.
@alexanderdean @chuwy: I've now implemented all the features from the 0.2.0 milestone. This should be ready for a final review!
Awesome - thanks @rzats! Requesting the first pass review from Anton...
@chuwy: fixed most of the issues you've mentioned (besides command documentation - still need some clarification from @alexanderdean on what some of the metadata actually means). Also GitHub doesn't let me reply to your last comment, but yes, all the new environment variables are on Travis.
Well done, @rzats! I also made another pass on Kinesis Observer and it looks fine.
Two last things:
override
modifiers everywhere where it is not necessary. override
usually signals developer that default class' behavior is overridden, but in most our cases that's not true, as those superclasses have no default behavior.2016-2017
@chuwy: done!
Closing, will open a PR with the new branch.
Contains
An initial implementation of a RT pipeline for Sauna. This includes the Kinesis observer as well as HipChat/Slack/PagerDuty responders. For specs & schemas, see:
Third-party contributions from #66, #68 and #69.
Closes #47, #53, #70, #71 and #75.
Outstanding before merging
[x]
I couldn't includeiglu-scala-client
. Including anigluClient
dependency inDependencies.Libraries
, then in the mainbuild.sbt
causes this error:This means thatSelfDescribing
data isn't validated against its schema for now.[x]
The command processing functionality is definitely not HipChat-specific and should be extracted into a more general class, potentially a base command-processing resolver.[x]
The Kinesis observer should match the existing iglu-central spec...[x]
...and should be covered by a test suite.[x]
A fix/implementation for #75 should be included.