Skip to content

Latest commit

 

History

History
98 lines (59 loc) · 4.19 KB

README.md

File metadata and controls

98 lines (59 loc) · 4.19 KB

Event-Sauced - PostgreSQL Engine

Welcome to the PostgreSQL engine for Event-Sauced. As this is a component library, I would recommend readers to go check out the main library for an overview of what Event Sauced is meant to be.

Motivation

I like learning about databases, what they can - and more importantly - what they can not do. This lead me to try and implement an opinionated, but quite thin - event sourcing framework on top of the world's more popular databases.

And one of those seems to be PostgreSQL, so let's get started!

Build status - Github Actions

Build Status

I'm currently orchestrating everything using Github Actions. It is fun, there's a bunch of goodies to be had for free, and it keeps stuff well within GitHub.

Code style

code style: prettier

I'm using a combination of Prettier, Husky, Lint-Staged and finally [ESLINT].

It's a set-up that I'm borrowing from Alex Jover's amazing Typescript Library Starter, and it's working a treat.

There are two levels of linting happening, Code Style and Static Analysis. The former will be applied as a Git pre-commit hook (courtesy of Husky) on only staged files for speed (courtesy of Lint-Staged), and will automatically format the code (courtesy of Prettier).

The latter linter step - making use of more in-depth static analysis information - will be triggered as part of a Git pre-push hook, as it's generally a more expensive operation, and I don't want to be bothered all the time, as long as I get bothered before I actually push to my remotes.

You can find more on this in package.json.

Dependencies - Runtime & Otherwise

Dependencies DevDependencies

Dependency Philosophy

I like to keep the run-time dependency count to a bare minimum. This means that - in this case - I'll be fighting tooth and nail to keep the runtime dependencies to 2:

  1. the core event-sauced library
  2. pg - Incredibly stable PostgreSQL library for Node.js

Versioning

Dependency versioning is managed in two ways:

  1. Automated - via Renovate
  2. Manual - npm start maintenance.update_dependencies.interactive - This will run npm-check-updates and guide you through an update.

You can perform a maintenance dry-run using just npm start maintenance.

Frameworks/Tech Used

That's probably it for now.

Code Example

@TODO - Fill this in once there's some code to examplify.

Installation

@TODO - Fill this in once there's some package to install.

Tests

@TODO - Fill this in (there's a pattern here, it's subtle though) once there's something to test.

Contribute

@TODO - Set up contributers agreement

Credits

@TODO - Fill this in once you remember who all to thank

License

GitHub

copyright © 2017-2019 YannickMeeus