Why I Created YADA
yadadata.com
yadadata.com
what the author replaced was a classic "first system"...but he created a classic "second system".
I wish people would just realize that the best route is to solve the problem at hand...and JUST the problem at hand, with the smallest and simplest codebase possible....these tend to be the near-optimal "third systems" that eventually emerge.
But I have the feeling, that good frameworks still make some stuff easier than others, while supporting arbitrary programming/turing completeness.
For example Cycle.js, which is a structural framework for reactive programming with observables. It's made for front-end developoment, but I can also model REST and WebSocket servers with it, since almost everything can be modeled as a mix of source-streams + (input-data) sink-streams (output-data).
Since it uses observables all over the place, it makes handling these data-streams much easier an clearer, by making them first class citiziens in the app.
true. This is pretty much what i have been doing for 25 years and will be doing for the next like 20.
Reminds me about the time when one guy we had around read a book on finite state machines. It was, dare i say, an eye-opener for him. Since that moment until he parted with us, all what he was doing was FSAs.
Only once you end up having to solve a separate problem that shares common attributes/patterns with the first should you you extract a common framework and rebuild both on it. You have a proven need and you're not just blindly building "someday this could be used for"-type code.
Thanks for taking the time to review and comment!
There isn't currently an Adaptor authoring guide, so that would obviously be a good thing. There are some code samples for usage in user guide.
In any event, thanks for giving it a look and taking time to comment.
Hell, some companies (Teradata, Informatica) have built their entire business on this. Of course, their solutions are far more complex and scalable, but this is definitely not a new problem (or solution).
ETL is a viable use case, one of the first in fact, dating back to 2011, in which we marshalled 100s of millions of RNASeq gene expression values and metadata into a dw.
Regarding other ETL tools, one of the goals of YADA is to make the process easier. The tools you describe are well known and robust, but as you point out, complicated and costly. YADA was designed to be much simpler. Further, it can also be used for a variety of other things, like SPJAs, data analytics, etc, securely, and without additional overhead.
although I guess that happens alot nowadays.
Then you realize it is a lossy transformation that doesn't expose any of the real power of the platform you are committed to, and you don't actually have to parameterize the world of possibilities (and there is no value in enabling this)...you tarball it and walk away.
Even when those four types are sufficient, you'll frequently find there are better ways to handle storage and transmission than serializing the data to JSON.
YADA doesn't abstract any underlying system, it abstracts access to the underlying system. You can think of it as a pluggable web service that you slap on, say, a legacy warehouse, except it can also reach into any other system, enabling access to data using the same standard syntax.
It's like a BI or ETL tool in that respect, except those tools wall off the work you've done and limit repurposing. BI tools generate reports and that's pretty much it. You couldn't, for example, point Spotfire to Cognos, you'd connect them both to the db instead, distributing the credentials, and possibly construct the same query in both places using their interfaces. With YADA, you could instead write the SQL once, and get the data from anywhere.
I do agree with your sentiment however, that as innovators we always think there is a better way, or more commonly, that their _must_ be a better way, because we don't understand the problem fully, or grasp the complexity of the current solution. Often we discover we're not the first to think of a great idea. I'm sure there are similar tools to YADA, but I also think YADA has potential to offer a wide array of users some options and combinations of features that are distinct in the marketplace.
To show how silly it is, imagine if you were talking about another program that was incredibly useful like grep for example:
"It's written in c after I read for 15+ minutes and then backed out, as I don't use c."
Suppose you were a ruby developer and you want to create a fully scalable, highly available JSON document store that you can easily index, store, and backup/rotate, and a solution like this wasn't available in your language. Would you create your own database to store the documents, implement your own consensus algorithms and searching algorithms like TL-DF?
Or would you just learn how to use elasticsearch and incur the cost of running it?
Edit: This was meant to go under one of your post's child comments, and hopefully isn't too out of context misplaced here.
Are you going to pick up _all_ kinds of tools from a store? I do have my preferences there.