"Complexity is the single major difficulty in the successful development of large-scale software systems." — Out of the Tar Pit. Ben Moseley & Peter Marks, 2006
Effort necessary to understand software shouldn't grow exponentially as software grows. Yurt provides a platform that manages your application's state and flow of control.
Data is represented as relations.
Integrity constrains are expressed using relational algebra.
Queries are represented as relation agrebra expressions.
Both constraints and queries are supported by pure functions.
Yurt aims to implement functional relational programming defined in Out of the Tar Pit paper as closely as possible.
Behavior of a yurt system is declaratively specified in relations, constraints, queries and functional extensions. But a program can only affect state and cause side effects as response to inputs.
There can be multiple feeders (sources of input) to a system. Each transaction must change the state into a new consistent state to succeed.
Observers are the means of output in a yurt server. They subscribe to one or more queries and get notified when they change.
Ad-hoc queries and system prevalence are also considered as supplementary methods of accessing the state.
Yurt is still in pre-alpha stage. Current priority is to make it work right, assuming an ideal world where giving up state and control doesn't cause performance drawbacks. Once this goal is accomplished making the platform scalable and high performance while retaining the advantages of controlled complexity will be prioritized.
If you would like to be notified when yurt nears a release you can subscribe the updates list below. No updates are sent for now, and when there are updates they will either be bi-weekly or monthly. Also we will not share your emails with third parties or use them for another purpose.