Stack

Questions and answers about DevPrime Stack.

1. What is DevPrime Stack?

DevPrime Stack offers a complete application design based on a hexagonal architecture. One of the main advantages is to have structured and uncoupled applications, enabling anyone developer, regardless of their level of knowledge (Junior, Full or Senior), build the first Cloud Native Event-Driven Microservices and API’s in 30 minutes removing technology obstacles and promoting increased maturity in software development.
The DevPrime Foundation classes present in DevPrime Stack are built to apply a Domain Driven Design (DDD) strategy, modeling software in business domains, and facilitate test-driven development and test-driven development (TDD) practices, ensuring quality in implementations performed by developers.

2. Does DevPrime Stack generate the test frameworks automatically?

By using DevPrime CLI we have features that create standardized, testable and predictable structures. These frameworks serve as a model and are integrated with DevPrime Stack, ensuring stability and directing the team to good practices in building code in a Test-Driven Development (TDD) scenario.

3. When you quote uncoupling, the only layer that is actually uncoupled is the domain layer?

DevPrime already provides an infrastructure that addresses all the criteria of clean code, S.O.L.I.D., design patterns, and a hexagonal architecture. This all provides well-structured code, as well as uncoupling of the classes and layers of the application. The links between the classes are performed by dependency injection.

Every application generated by DevPrime follows the Event-Driven strategy. Therefore, all internal and external communication of applications are carried out through events. This makes it possible for applications not to know each other, but to communicate seamlessly, ensuring uncoupling between them.

4. If DevPrime Stack creates the entire automatic structure I just worry about coding the business layer?

DevPrime Stack provides developers with a software strategy and accelerating project development and removing technology hurdles so they can invest 80% of their time implementing business-driven code and test coverage. This leads to the construction of well-done software with low maintenance cost and evolution.

5. What is the main proposal of DevPrime Stack?

DevPrime accelerates application delivery and development of Event-Driven, Cloud-Native Microservices, and API’s using a Stack with accelerators, out-of-the-box functionality, software architecture strategies following key industry standards.

6. How do I guarantee that my developer won’t accidentally change something that shouldn’t harm Stack?

Stack maintenance is done by the DevPrime team that provides upgradeable components for consumption in applications. Implementations made by project teams do not change the stack. If there is unusual behavior, DevPrime reports critical of developer-encoded objects and generates structured logs exposing details of identified issues.
The DevPrime architecture project was structured with the aim of facilitating code review. In our documentation we indicate recommendations with to perform code inspections for non-conformities.

Enteprise licensing clients can additionally hire a follow-up consultancy that audits applications for the purpose of finding non-conformities in the architecture.

7. Where does the Stream Adapter persist the events emitted if the service is unavailable?

All existing adapters in DevPrime have autonomous behavior and deal with potential failures. In application configuration, you can indicate a State adapter for resiliency persistence.

8. Can I run an application developed with DevPrime in Cloud Foundry?

By using the DevPrime product all developed applications adopt the Cloud Native strategy, allowing publication in any Cloud or On-premises environment.

9. Is elasticity provided by Stack or Cloud Infrastructure?

DevPrime-based applications are event-driven, async, and non-blocking and designed as stateless without maintaining local states ensuring fluid execution and not being a resource offender working seamlessly in high-scalability scenarios. The Cloud infrastructure should enable application scalability, for example, the Kubernetes cluster to meet demand depending on the volume.

10. How do DevPrime adapters work?

DevPrime adopts a hexagonal architecture strategy, bringing several adapters with intelligigenous behaviors and developer-ready functionality. It is possible to include additional code by enabling customizations.
Adapters deal with technology-specific particularities, removing their obstacles and making life easier for developers. All are controlled and monitored by DevPrime Middleware which ensures predictable behavior, as well as enabling resiliency, Retry, Circuit Break features and ensuring the three pillars of Observability: Logs, Tracing and Metrics.

11. From the domain driven design (DDD) perspective, how to isolate delimited contexts?

Through a step called Analytical DDD we define the boundaries between business contexts, as well as the interactions between them, with the help of Event Storming journeys.
With the completion of this first cycle, we begin the second phase that is tactical DDD. During this process, predictable business outputs are generated, for which we have pre-established classes in the DevPrime Foundation.

12. I am using DevPrime to build my e-commerce and Products appears in several different delimited contexts. Wouldn’t that generate a data inconsistency?

In a simple e-commerce scenario, if we are dealing with the product within the context of a showcase, we would have a list of photos and a commercial description of this product. In the case of the invoice context we would have only one description and the SKU of that product.

If you look at it from this angle, the view of a product in the context of invoice scans is much simpler than in the context of a showcase. Although the data is about the same subject, they are different, and there is no duplicate of that data. What exists is a link between them by the SKU.

13. How to ensure data consistency in the Domain Driven Design (DDD) approach and how to ensure that all contexts have access to the same information?

DevPrime has an event-driven architecture allowing you to propagate business facts. Other services by subscribing to events can react and take action.

14. I have an application built with DevPrime and want to exchange the Stream service is possible?

DevPrime Stack provides in its structure the configuration files of each available driver. If you need to exchange a RabbitMQ for a Kafka, for example, you can change the configuration and the adapter will react to this change by changing the driver used without the developer having to change any lines of code.

15. Are all adapter configurations preconfigured in DevPrime Stack?

DevPrime CLI allows the developer to choose the settings for each technology at the beginning of the project. If you need to make changes, simply use the application configuration file without the developer having to change any lines of code.

16. During the scalability of Microservices what is the behavior of DevPrime?

DevPrime Stack defaults to Stateless, Event-Driven, and Reactive API’s strategies. The DevPrime infrastructure consists of a set of standalone adapters that actively react in a distributed systems environment, including services such as Automatic Resiliency, Retry, and Circuit Break.

17. Where do I implement business rules in a project created with DevPrime Stack?

The DevPrime architecture provides a placeholder for the business rules, the Domain layer. It is here that the intelligence obtained in conversations with the areas is placed.

The developer builds code based on Domain Driven Design (DDD) by inheriting the DevPrime Foundation classes. These classes contain the business rules expressed in a predictable and testable format.

18. What is the health check adapter generated by DevPrime Stack for?

We offer within DevPrime Stack a health check adapter so that a tool like Kubernetes can check the health status and availability of the application.

19. Is it possible to customize the DevPrime Stack health check adapter?

We open the possibility of customizations of both the health check adapter and other adapters.

20. What if new adapters are needed in DevPrime Stack?

We discuss the needs with your software architecture team and our architecture team assesses the feasibility of creating the new adapter. In case of the need to develop a new functionality, our team will build the feature and make it available. With this their development teams continue to work with a focus on business implementations.

21. How is validation and security done in a communication scenario between Microservices? Is everything in charge of API Gateway?

Applications built with DevPrime Stack have a security adapter, where the main authorization and authentication technologies on the market are supported.

22. How do I start using DevPrime Stack?

DevPrime CLI is installed on the developer’s machine. From this point the developer begins to develop applications with DevPrime.

23. How is the issue of updating devPrime Stack versions?

We provide our customers free of charge with all updates that are made not only to DevPrime Stack, but to all DevPrime components during the period in which the licensing agreement is active.

24. How do you maintain the compatibility of these versions of DevPrime Stack?

We manage library versions and make it available to customers for them to perform project updates.

25. Are all applications created cloud independent?

DevPrime Stack is cross-platform and designed in a Cloud Native strategy, enabling the best lockin-free experience with cloud providers.
Applications run on Kubernetes (in the Cloud or On-premises) or even on virtual machines transparently. This makes it possible to switch hosts at any time without changing an application line of code.

26. Does the health check mechanism provided by DevPrime identify whether data persistence or stream is down?

The DevPrime health check engine offers a series of extensible endpoints to expose information related to the proper functioning of the application. However, for connection availability checks with data persistence mechanisms or stream services, there are event-oriented, reactive, and non-offending functionality in state and stream adapters respectively, which make the information available to your SRE team the instant it happens.

27. If I need to use an SFTP or something I don’t have a ready adapter, would it be possible to create a new adapter?

We offer an adapter called Tools to receive external components from third parties and allow use without contaminating the project.

Last modified March 10, 2022 (615ec2b)