-
Storage service
1.1. Storage service This service stores files on FTP, local, etc. This service stores stored files information in a DB table (documents table). The folders should be named as the entity types for…
-
Document service and document templates
There are two document templating and rendering engines: an Angular application that runs separately from the main ERP UI application, that is called by the main frontend application in order to get nice…
-
Microservices
1.1. Event sourcing https://www.confluent.io/blog/apache-kafka-for-service-architectures/ Events should have: a unique ID, message version, schema version, the name of the service that raised the event, data. The most common approach for handling breaking changes like…
-
Business logic
The business logic is implemented in an ERP module. The business logic will be stored in similarly named and structured folders as the entities or modules that it serves. Business logic can be…
-
Events
Microservice Events All database access will raise events, especially the writes. This has to be implemented (or override) in the base implementation of the ORM. The cache system will listen for these events…
-
Entity lock
When a user is editing an entity, an entry is added to a lock table and other users can’t edit that entity until the first users releases it. The lock table has to…
-
Logs
1.1.1. Log table All transactions should generate events, and the events stored in an event store. The transactions (API calls, ORM calls etc.) can be stored in a NOSQL database and analyzed in…
-
Entity configuration
The main configurations for data access will be done with the ORM syntax (indexes, entity structure etc.) and the display options will be in a DB table in order to allow the user…
-
Entity Attribute Value
Entity–attribute–value model (EAV) is a data model to encode, in a space-efficient manner, entities where the number of attributes (properties, parameters) that can be used to describe them is potentially vast, but the number that will…
-
Extensions
Extending the models Extensions should only be used for customer specific implementations that don’t make sense to be added to the main default business models. Each model should have a property named extension.…