Skip to content

Latest commit

 

History

History
86 lines (58 loc) · 3.84 KB

File metadata and controls

86 lines (58 loc) · 3.84 KB
id introduction
title Introduction

Setting Up

Prerequisites

You need to have Node >=8 on you development machine and on the server. You can use nvm (macOS/Linux) or nvm-windows to switch Node versions between different projects.

Make sure you have Node, NPM, and NPX installed:

$ node --version
v10.5.0
$ npx --version
6.1.0

Getting Started

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

Your app is running at http://localhost:3000

Core Concepts

Domain Driven Design

Domain aggregate is a business model unit. Business logic is mostly in command handlers for the aggregate.

Event Sourcing

Don't store system state, store events that brought system to this state.

CQRS

System is divided in two "sides":

  • Write Side accepts commands and generate events that stored in the Event Store.
  • Read Side applies events to Read Models, and process queries.

Write side is optimized for writing, read side - for reading.

Examples

The reSolved repository contains example projects. You can use them to study various use-case scenarios or as templates for new reSolve applications. The example projects are available in the repository's examples folder.

The following example projects are available:

Example Name Description
hello-world A blank app used as a default template for new reSolve applications
hello-world-typescript A blank app used as a default template for new reSolve applications with TypeScript support
with-postcss Demonstrates how to work with postCSS
with-styled-components Demonstrates how to work with Styled Components
shopping-list Demonstrates how to work with Read Models and View Models
shopping-list-advanced Demonstrates how to use reSolve with React Native
hacker-news A clone of the HackerNews application implemented using reSolve

You can install any of these examples on your machine using the create-resolve-app tool with the -e flag followed by an example name.

npm
npm install -g create-resolve-app
create-resolve-app resolve-example -e <example name>
npx
npx create-resolve-app resolve-example -e <example name>
yarn
yarn create resolve-app resolve-example -e <example name>