Open chuwy opened 5 years ago
I have a wider topic.
My use case is an easy one. I just want to have a smarter e2e test but i see a case for nodejs projects
These are all good questions.
Should we made it isomorphic (nodejs / browsers / react native etc ) friendly or create nodejs client ?
I think client-side is in a slight priority. Because we've seen use cases where users wanted to validate their data before tracking and client-side JS tracker is our by far most popular one. Another reason is that technically, we can tweak our Scala Client to be used on Node.js with Scala.js, it would be too bloated for client, but certainly fine for server-side. Right now we're using few Java dependencies which makes it impossible, but we do have distant plans to remove them.
What the strategy? We could fix existing client or we could redesign from 0 and add core modules etc. ?
I don't think there are any production systems in snowplow dependent on this client right now, but I'm certainly in favor of more evolutional approach. My main design goal here would be to make API and behavior isomorphic with existing Scala and Ruby clients.
All Iglu SDKs should contain core dependency-free module (e.g. for Scala: https://github.com/snowplow/iglu/wiki/Scala-iglu-core) with basic structures/classes such as: schema key, self-describing data, schemaver. This core module could be re-used in snowplow trackers, iglu clients and other SDKs.