Reliable
Software should solve business problems as reliably and efficiently as possible. Sadly, a lot of today’s software does this rather poorly. Bugs and outages are the norm.
It does not need to be this way.
The challenges of developing software have been clear for a long time and many proven solutions exist.
With Raccoon, we apply various practices and architectural patterns to make sure our software works reliably and solves real problems efficiently.
Event Sourcing
Raccoon is implemented using event-sourcing. This means that instead of storing only the current state, all changes are persisted. For example, creating an order is recorded as an event and so are all later edits, like setting a billing customer or creating and adding a shipment. For every event, date, time and user are recorded.

This brings great gains and possibilities.
Audit Log
As every change is recorded, the editing history of every entity in the system is stored and can be reviewed. It is always very clear when and by whom a shipment or order has been created, changed, picked up and delivered. This enables answering customers’ questions precisely on when and where a shipment has been delivered.
Replayability
Events can be replayed partially. This makes it possible to restore past states of the application, which can be very useful for review and learning purposes. For example, trainees can be exposed to a tricky real world situation to be able manage real situations with ease.
By adding a revert action for every event, undo and redo functionality can be implemented quite easily.
Analytics
It opens up great possibilities for analytics because there is way more data available to analyze.
Continuous Delivery and Testing
By using continuous delivery we make sure that we can gain fast feedback from users and can deploy changes, new features or bug fixes, in minutes to be used by users.
For this to work, we use extensive unit- and acceptance tests to make sure that the software works correctly. This minimizes bugs and regressions and enables fast changes.
