Giter VIP home page Giter VIP logo

bones's Introduction

icon

A work-in-progress CQRS/Rest frameworky thing.

The goal is to provide an easy way to get started writing clojure apps that will be immediately scalable. Embracing async and streaming throughout, bottlenecks and processing complications are mitigated. Embracing a data-oriented API the user is empowered to manage a small or massive project (theoretically; there hasn't been a massive project built with it, yet ;).

The components of this framework are designed to be stand-alone libraries that are also designed to fit together. The intent is for the programmer to focus on data specification and behavior, while the framework handles the plumbing aspects. These libraries will connect the user's handler functions with some data validation along the way.

There could potentially be a library that composes the component libraries. For now, they assist with the plumbing of building an app.

These are the components:
Examples:
  • todomvc front-end only

    This todomvc, quite possibly, has the fewest lines.

  • app using kafka as db all components combined

    Demo Video (no audio, sorry) Be sure to check this app out, it has been the target app that these libraries have been built around. It mostly resembles what an app would look like.

In play:

The design goal is to basically combine these awesome projects.

They share the values of data streaming and data as configuration; data all the way down, so to speak. So, you might ask, why not just use them directly? The intent of this framework is to provide sensible and helpful defaults, minimize the required configuration, and ensure those projects work well together. Hopefully, providing enough benefit, while also getting out of the way.

Influenced by:
Aspiring to be like:

The plan is for this frameworky thing to embrace systems by offering support for Kafka and Redis; two integral parts of of this web app architecture. It would make sense to help with the provisioning of these systems, so maybe another library could come about doing that.

Architecture

Bones Architecture

License

Copyright © 2015 Chris Thompson

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

bones's People

Contributors

govloop-deploy avatar teaforthecat avatar bmaddy avatar

Stargazers

 avatar Gokberk Ergun avatar Mert Nuhoglu avatar Mohammad Sadegh Khoeini avatar Helder S Ribeiro avatar Justin Tirrell avatar Stephen Hopper avatar Mathieu Ravaux avatar Adam Tankanow avatar  avatar Artem Espolov avatar Joana avatar Will Mruzek avatar Josh Tilles avatar  avatar D W avatar Venkatesh Sharma avatar nizq avatar Jinmo Im avatar  avatar Roman Pearah avatar Ticean Bennett avatar Jonathan Garrity avatar John avatar Wayne Hunter avatar Bahadir Cambel avatar Andreas Thoelke avatar Leonardo Fernandez Sanchez avatar jn avatar Chad Walstrom avatar Keld Lundgaard avatar  avatar Antony Woods avatar  avatar Lucas Bradstreet avatar Tommi Reiman avatar Michael Drogalis avatar Eric Richmond avatar

Watchers

Joseph Wayne Norton avatar Bahadir Cambel avatar Leonardo Fernandez Sanchez avatar Josh Tilles avatar Dan Kersten avatar Andreas Thoelke avatar

bones's Issues

explore test.check and expectations together

It seems like these might fit. Let's explore a better testing methodology that (is (=. It would be nice to somehow combine test.check for the shrinking, schema.generators for consistency, and expectations for the output. It is early days here though.

combine outputs into one topic

We don't want the client to have to create a bunch of connections which contain consumers and threads. Let's output all the jobs to an output topic, and use the event-name to let the client sort them out.

create new project to configure and deploy the components

All the configuration could be simplified even more by using Arachne. It would also be nice to deploy to Kubernetes. It may make sense to combine these ideas because you would be basically defining a runtime and even more simplicity could be achieved.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.