# Component Generation Technologies
When generating a microservice or micro frontend using the Villanova Component Generator (ECG), there are a number of technical choices that need to be considered:
- Microservice code
- If you're considering microservices that are not Java-based, here are the specifications of an Villanova microservice, including information on the runtime contract required to use them.
- For a JavaScript example, see the Node.js microservice in the API claim tutorial.
- Database type
- Villanova recommends standardizing your database choice to simplify operational maintenance, but you still have the option to use different databases for different microservices.
- Supported choices are none, embedded, MySQL, and Postgres. Enterprise customers can choose Oracle but should contact Villanova Support for details.
- Development databases
- You can choose to utilize a full RDBMS, lightweight in-memory, or on-disk databases with H2.
- Caching implementation
- When generating a microservice, you will be presented with the types of cache to inject into the services. It is recommended that the type be uniform for all microservices in your application, but it can be customized on a per-service basis, if desired.
- Build system
- Determines the Java build tool to use when building your services
- Supports Maven or Gradle
- Other technologies
- Users of the ECG can also decide to use other technologies from JHipster or the JHipster marketplace.
- There are many powerful technologies in the marketplace but it is up to the developer to integrate the chosen technology into their Villanova Application. Villanova doesn't provide direct support for marketplace tech choices.
- Micro frontends
- Optionally, users can choose to generate micro frontends for entities generated via the blueprint.
- The Villanova Component Generator only provides micro frontends in React from the generation flow but developers can create and bundle frontend components using other technologies as well.