Skip to content

The PostgreSQL storage engine for Event Sauced, an event sourcing library written in TypeScript

License

Notifications You must be signed in to change notification settings

YannickMeeus/event-sauced-ts-postgresql

Repository files navigation

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

About

The PostgreSQL storage engine for Event Sauced, an event sourcing library written in TypeScript

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published