DataSeeder¶
During the suite development lifecycle we've encountered ourselves, time and time again, before two recurrent challenges:
- The need to deploy our development environments and have them up and running from scratch, this including all the initialization data required to run the applications.
- An efficient way of creating test data which is required in most cases for developing our business features.
Our first attempts on addressing these requirements also revealed a few constraints:
- The required data would vary depending on the environment being deployed (we don't need the same users for a localdev environment and a client-specific test environment).
- Adding or modifying specific data on the fly would become a common use-case and therefore it should be accomplished in a fast, seamless way.
- Delegating the responsibility of seeding data to our business microservices would throw us into a very non pleasant scenario where we need to deal with deployment, coordination and temporality.
All these conditions (and a couple more not worth mentioning now) left us with a clear definition of the artifact we needed: it should be somewhat centralized, easily customizable and be seamlessly attachable to the deployment process without becoming a dead weight.
The DataSeeder service is, at this point in time, that artifact.