Skip to content

Build reactive apps with functional JavaScript, CQRS and Event Sourcing

License

Notifications You must be signed in to change notification settings

alexslavr/resolve

 
 

Repository files navigation

Build Status npm version GitHub license

A JavaScript framework for CQRS, Domain-Driven Design and Event Sourcing with robust support for React and Redux. reSolve provides a new way to describe an app's core logic and fully separate it from auxiliary code.

📑 Table of Contents

With reSolve you can more efficiently create applications of any complexity level. A single approach is used for simple ToDo List and for a complex reactive application like Stack Overflow, with distributed architecture that is ready for high load. The technologies stack (CQRS, Event Sourcing, Domain-Driven Design, React + Redux) makes any reSolve application scalable and maintainable, so you can focus on business logic instead of auxiliary code.

  • 💎 Reactivity
  • 💎 Distribution
  • 💎 Highload
  • 💎 Fault Tolerance
  • 💎 Unidirectional Data Flow

The create-resolve-app package is used to create a reSolve-based application. You can use it to get one of the examples, or create an empty application. By default, create-resolve-app generates an empty Hello World application. You can start working on your new reSolve application in just 2 minutes!

Use one of these tools to start a new reSolve aplication:

  • npx

    npx create-resolve-app my-awesome-app
    cd my-awesome-app
    npm run dev
  • yarn

    yarn create resolve-app my-awesome-app
    cd my-awesome-app
    yarn run dev
  • npm

    npm i -g create-resolve-app
    create-resolve-app my-awesome-app
    cd my-awesome-app
    npm run dev

    Note: Installing a package globally (the first command) may require administrative privileges. That means you have to use the sudo prefix on Linux and MacOS, or start a terminal with the administrative privileges on Windows.

The created application is accessible using the http://localhost:3000/ and http://<your_ip>:3000/ URLs (you can change the URL settings). Start learning reSolve with the First Application From Scratch tutorial. Use the documentation, tutorials and examples to learn reSolve more deeply.

You can get a sample app using the create-resolve-app tool with the -e flag followed by an example name. Use the create-resolve-app -h command to list the available examples.

The following tools are used to get a sample reSolve application:

  • npx

    npx create-resolve-app todo-example -e todo
  • yarn

    yarn create resolve-app todo-example -e todo
  • npm

    npm i -g create-resolve-app
    create-resolve-app todo-example -e todo

The created application is accessible using the http://localhost:3000/ and http://<your_ip>:3000 URLs (you can change your URL settings).

The create-resolve-app can is capable of creating the following apps:

  • auth

    This example demonstrates how to add an authorization to an application using the resolve-auth package.

  • hacker-news

    This example demonstrates a Hacker News application similar to YCombinator Hacker News. The app's creation process is detailed in the Hacker News Tutorial.

  • hello-world

    An empty app that can be used as a template for any reSolve application (created by default).

  • todo

    This example demonstrates how to work with the view-models. The app's creation process is detailed in the ToDo List App Tutorial.

  • todo-two-levels

    This example demonstrates how to work with view-models in the all events subscribtion case. Learn more about this case in the View Model article.

  • top-list

    This example demonstrates how to update the application state on external events unrelated to user actions.

  • with-styled-components

    This example demonstrates how to add the 'styled-components' library to an application.

You can develop and run reSolve applications on Linux, Mac and Windows operating systems. It is also possible to integrate reSolve with the React Native, but this approach is currently experimental.

The minimum supported NodeJS version is 6.0.0.

reSolve supports npx, yarn, and npm package managers.

Feel free to contact us if you have any questions!

✉️ We are glad to see your e-mails sent to [email protected].

💬 Follow us on Twitter. We post interesting arcticles, announcements, post polls about reSolve development and talk about the modern web technologies!

💻 We also have a Facebook page, join us!

📃 You can find our articles on Medium

❓ You are welcome to post any questions or suggestions in GitHub Issues

🔧 Feel yourself capable of improving reSolve? Become one of our contributors! Look through our Contrubutors Guide and make a great Pull Request.

⭐️ Remember to star our GitHub repository if you like reSolve!



reSolve is developed by

💛Developer Express Inc.💛

About

Build reactive apps with functional JavaScript, CQRS and Event Sourcing

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%