610
Views
4
Comments
Solved
Several Questions/Limitations in ODC
Question

Hello community,


While playing around with ODC and going through the trainings available, I've come up with some questions...


  1. Hotfixes 
    If a production issue is found that requires an hotfix, how could we achieve that? The only way I see is: 

    1. On Dev staging, open the same Revision number being used in Production
    2. Do the hotfix and publish in Dev
    3. Push to Prod stage
    4. Open the previous Revision from Dev (that contained the most up-to-date code before the hotfix) and merge it with the last version (that contained the hotfix)
    5. Publish in Dev

      Is there an easier way or am I missing something?

  2. Entities
    Each Web App is an isolated Container, yet, we can reference Entities from other Web Apps.

    I haven't seen anywhere mentioning about performance considerations, but I wonder... 
    If I start making queries joining Entities (containing a couple of millions of records) from different Web Apps, won't performance be an issue?

    How are the Joins handled internally?

  3. Library App Static Entities
    These Static Entities are not DB Entities and based on my tests I cannot use them on Aggregates or SQL Queries (which is what I was expecting).

    But... based on the cheatsheet, I should be able to use them on Aggregates and SQL Queries:
    Question is, if I need to iterate through the Library App Static Entity records to, for example, call an action that receives the StaticEntity Record Id, how can I do it?

    Even if it would work on Aggregates and SQL Queries, they don't even exist on Library Apps, so I would not be able to create something reusable that would have to go with this logic.

    Is there any way to do this?

  4. Timers 
    How many can run simultaneously?

And these are the questions I have until now :) if someone could enlighten me, it would be great.


Regards,

Cláudio Oliveira

2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP
Solution

Hi Cláudio,

Those are all very good questions, and ODC doesn't have (yet) the answers we like to hear.

I try to answer your questions with the knowledge I gained sofar in participating in the EAP of ODC.

ODC will be in GA with not complete feature set, let's not forget it also took many years for OutSystems to get into what is in O11. So what is not yet available, might become available in the (near) future.

1. Hotfixes

You can only develop (have your screens and logic) in the DEV stage. This makes it impossible to do hot fixes as we are used to in O11 in a preceding environment line Pre-Prod or QA and then merge back the hotfix in DEV.

There is currently, imho, ODC has no easy way to do hotfixes. The way you describe is a good way to do it, and it doesn't come a lot easier. The way you describe it seems not too hard, but it will be if the versions have entity changes.

Alternatively, you can introduce the concepts of feature flags.

2. Entities

No experience with large volumes of data, but executing a query, would generate a SQL statement executed on the database server. It should not matter that two entities are defined in two different apps. You can still define relationships between entities of different applications. App A can reference a public entity of App B and define a relationship between an entity of app A and app B. The generated SQL statement will be executed on the database server, not in your app containers.

Each Runtime stage has an isolated Amazon Aurora Serverless database.

3. Library App Static Entities

You can use record attributes of a public static entity from a library in consumer app aggregates and SQL. You can not use the Identifier of a public library static entity as foreign key in entities in a consumer module. So even if you want to filter for example Product.Category (entity in an app) with ProductCategory static entity defined in a Library, you cannot even set Product.Category to the static Entity identifier. Instead, you need to use a base type like Integer. So no database relation is established. But you can use the static entity in filters, in this example the ProductCategory static entity is from a library.

If you want to iterate over the records of a static entity, you need to define the static entity in an application, not in a library.

4. Timers

Not defined or documented, I will ask OutSystems. I do hope that for the fact that timers also run in isolated containers, we are not stuck to the same limitations as in O11
https://success.outsystems.com/Documentation/outsystems-developer-cloud/Building_apps/Use_Timers/Create_and_run_Timers

I am confident that these responses may not be exactly what you were hoping for, but I hope they are still useful to you. 

Kind regards,

Daniel


2021-09-30 06-07-41
Cláudio Oliveira

Thank you for the reply Daniël.


1. Hotfixes

Indeed, the biggest issue here is that the Development team cannot publish anything from the moment the Hotfix starts until it's staged.

So in order to make an hotfix, we need to block the work from other people, that's what I'm not pleased.

2. Entities

Edited (I've previously said something wrong).

I was not aware that there is a single DB instance per runtime stage, so now it's clear ;)

3. Library App Static Entities

Yap, that's what I thought.

In my opinion there should be a way to iterate through those static entity records. How, I have no idea :P

4. Timers

Indeed, curious to know what will be documented in regards to this.

The same for BPT/LightProcesses, but that's not yet available.



Regarding being the answers I would like to ear... well I'm trying to see the limitations and the effort on big projects.

In my role I need to make some decisions on how the new projects will be implemented, and for that I need to understand some technical aspects that can make me change the implementation design.

We are planning on rebuilding a big application, and knowing ODC is coming, decisions need to be made on making this a pilot for the use of ODC, so I need to understand the risks.


Thank you again :)


Regards,

Cláudio Oliveira


UserImage.jpg
Sam Riggleman

@Daniel Kuhlmann I found this post very helpful, thank you! I'm curious if any updates to these for ODC since posted 6 months ago?

2024-07-05 14-16-55
Daniël Kuhlmann
 
MVP

No updates on those topics, sorry. New features have been added like external logic, and subscription pages, and some more things. But my reply in this discussion from 6 months still stands with today's version of ODC.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.