Welcome to unify-flowret Discussions! #8
Replies: 12 comments 11 replies
-
Hello Deepak Arora, Assumption that we have flow When flow is executed. It will be stopped and wait for resume. |
Beta Was this translation helpful? Give feedback.
-
Hi Deepak, I am looking for a solution and like what I see in this project. The main hesitation I have is support for versioned workflows which is a common issue. So if have a large number of workflows running and we need to change one we want the existing executions to continue on the journey they are on, but new executions would take up the new definition. Is this possible, or something that needs to be added to the system? |
Beta Was this translation helpful? Give feedback.
-
Yea on a M2 mac, I forked it and will debug and create a pull request for what I find.
Exception -> Cannot resume a case that has already completed. Case id -> 1
at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:54)
at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:195)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:184)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:179)
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:508)
at com.americanexpress.unify.flowret.test_singular.TestFlowret.myAssertEquals(TestFlowret.java:236)
at com.americanexpress.unify.flowret.test_singular.TestFlowret.testResume(TestFlowret.java:361)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:515)
at org.junit.
Setting up the project now to debug
Mike
From: Deepak Arora ***@***.***>
Reply-To: americanexpress/unify-flowret ***@***.***>
Date: Wednesday, February 7, 2024 at 12:22 PM
To: americanexpress/unify-flowret ***@***.***>
Cc: Michael Ingardia ***@***.***>, Comment ***@***.***>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Really? I just ran TestFlowret in test_singlular package and everything looks fine to me. I am running on Windows. Are you on a Mac? Can you just run the test case testClean() and let me know what error you are seeing? It may have to do with how the text files are stored on Mac - to be honest I have tested these only on Windows. Let me also have someone test it here on Mac and report back.
—
Reply to this email directly, view it on GitHub<#8 (reply in thread)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA2V2SHK5HFWFYBBNJ44JL3YSOZ4LAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZG44DQOA>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Exception -> Cannot resume a case that has already completed. Case id -> 1
but was: <Received event -> ON_PROCESS_START, isPendAtSameStep -> false
Received enqueue request. Json below
{
"milestones" : [ {
"name" : "case_start_1",
"setup_on" : "case_start",
"type" : "case_level",
"applied_at_age" : "20d",
"clock_starts" : "immediately",
"action" : "CANCEL:CW"
}, {
"name" : "case_start_2",
"setup_on" : "case_start",
"type" : "case_level",
"applied_at_age" : "30d",
"clock_starts" : "immediately",
"action" : "CANCEL:CW"
} ]
}
What is interesting is does not happen when I run through the IDE but does happen when I run from the command line using mvn package, but running the test in intelij the test passes. Could be a race condition or that when maven is running its running the tests concurrently perhaps. Will debug further and get back to you.
Mike
From: Deepak Arora ***@***.***>
Reply-To: americanexpress/unify-flowret ***@***.***>
Date: Wednesday, February 7, 2024 at 12:22 PM
To: americanexpress/unify-flowret ***@***.***>
Cc: Michael Ingardia ***@***.***>, Comment ***@***.***>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Really? I just ran TestFlowret in test_singlular package and everything looks fine to me. I am running on Windows. Are you on a Mac? Can you just run the test case testClean() and let me know what error you are seeing? It may have to do with how the text files are stored on Mac - to be honest I have tested these only on Windows. Let me also have someone test it here on Mac and report back.
—
Reply to this email directly, view it on GitHub<#8 (reply in thread)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA2V2SHK5HFWFYBBNJ44JL3YSOZ4LAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZG44DQOA>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Yes – that is it – I have always run unit tests from within IntelliJ. I too will take a look when I get some time. Thanks!
|
Beta Was this translation helpful? Give feedback.
-
Not sure but it seems have to do something with the way your determining success or failure centric to the output to the console which I would probably try to come up with some other way of doing that as there are variability that can easily be introduced centric to new logs, or other things that would cause the unit test to fail, even though logically really nothing is wrong. Trying to determine what the difference is right now will let you know if I find something. In the meantime I will start bringing this into the software I am working on.
http://www.end2endlogic.com
http://www.b2bintegrator.com
Are the two things I am working on
Mike
From: Deepak Arora ***@***.***>
Reply-To: americanexpress/unify-flowret ***@***.***>
Date: Wednesday, February 7, 2024 at 1:55 PM
To: americanexpress/unify-flowret ***@***.***>
Cc: Michael Ingardia ***@***.***>, Comment ***@***.***>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Yes – that is it – I have always run unit tests from within IntelliJ. I too will take a look when I get some time. Thanks!
Regards,
Deepak Arora
From: Michael Ingardia ***@***.***>
Sent: Wednesday, February 7, 2024 1:05 PM
To: americanexpress/unify-flowret ***@***.***>
Cc: Deepak Arora5 ***@***.***>; Author ***@***.***>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Exception -> Cannot resume a case that has already completed. Case id -> 1 > but was: <Received event -> ON_PROCESS_START, isPendAtSameStep -> false Received enqueue request. Json below { "milestones" : [ { "name"
Exception -> Cannot resume a case that has already completed. Case id -> 1
but was: <Received event -> ON_PROCESS_START, isPendAtSameStep -> false
Received enqueue request. Json below
{
"milestones" : [ {
"name" : "case_start_1",
"setup_on" : "case_start",
"type" : "case_level",
"applied_at_age" : "20d",
"clock_starts" : "immediately",
"action" : "CANCEL:CW"
}, {
"name" : "case_start_2",
"setup_on" : "case_start",
"type" : "case_level",
"applied_at_age" : "30d",
"clock_starts" : "immediately",
"action" : "CANCEL:CW"
} ]
}
What is interesting is does not happen when I run through the IDE but does happen when I run from the command line using mvn package, but running the test in intelij the test passes. Could be a race condition or that when maven is running its running the tests concurrently perhaps. Will debug further and get back to you.
Mike
From: Deepak Arora ***@***.***<mailto:***@***.***>>
Reply-To: americanexpress/unify-flowret ***@***.***<mailto:***@***.***>>
Date: Wednesday, February 7, 2024 at 12:22 PM
To: americanexpress/unify-flowret ***@***.***<mailto:***@***.***>>
Cc: Michael Ingardia ***@***.***<mailto:***@***.***>>, Comment ***@***.***<mailto:***@***.***>>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Really? I just ran TestFlowret in test_singlular package and everything looks fine to me. I am running on Windows. Are you on a Mac? Can you just run the test case testClean() and let me know what error you are seeing? It may have to do with how the text files are stored on Mac - to be honest I have tested these only on Windows. Let me also have someone test it here on Mac and report back.
—
Reply to this email directly, view it on GitHub<#8 (reply in thread)<https://isolate.menlosecurity.com/1/3735928037/https:/github.com/americanexpress/unify-flowret/discussions/8#discussioncomment-8397888>>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA2V2SHK5HFWFYBBNJ44JL3YSOZ4LAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZG44DQOA<https://isolate.menlosecurity.com/1/3735928037/https:/github.com/notifications/unsubscribe-auth/AA2V2SHK5HFWFYBBNJ44JL3YSOZ4LAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZG44DQOA>>.
You are receiving this because you commented.Message ID: ***@***.***<mailto:***@***.***>>
—
Reply to this email directly, view it on GitHub<https://isolate.menlosecurity.com/1/3735928037/https:/github.com/americanexpress/unify-flowret/discussions/8#discussioncomment-8398334>, or unsubscribe<https://isolate.menlosecurity.com/1/3735928037/https:/github.com/notifications/unsubscribe-auth/AD23UJWEKBNP6MVEGPOLXSDYSO63PAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZHAZTGNA>.
You are receiving this because you authored the thread.Message ID: ***@***.******@***.***>>
American Express made the following annotations
This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify us by reply e-mail and immediately and permanently delete this message and any attachments.
American Express Prospective and Existing Customers: For more information about how we protect your privacy, please visit www.americanexpress.com/privacy. If you are located outside the U.S., please select your location at www.americanexpress.com/change-country/ and access the privacy link at the bottom of the page.
American Express a ajouté le commentaire suivant
Ce courrier et toute pièce jointe qu'il contient sont réservés au seul destinataire indiqué et peuvent contenir des renseignements confidentiels et protégés par le secret professionnel. Si vous n'êtes pas le destinataire prévu, toute divulgation, duplication, utilisation ou distribution du courrier ou de toute pièce jointe est interdite. Si vous avez reçu cette communication par erreur, veuillez nous en aviser par courrier et détruire immédiatement le courrier et les pièces jointes.
Clients et prospects d'American Express: Pour plus d'informations sur la façon dont nous protégeons votre vie privée, veuillez visiter www.americanexpress.com/privacy. Si vous êtes situé à l'extérieur des États-Unis, veuillez sélectionner votre emplacement à l'adresse www.americanexpress.com/change-country/ et accéder au lien de confidentialité en bas de la page.
—
Reply to this email directly, view it on GitHub<#8 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA2V2SC7BY5SARI3R77242TYSPE3ZAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZHA4DIOI>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Noted. As you can imagine, it is not straight forward to write unit test cases for an orchestrator. The strategy that I had adopted was that I would compare the output of the logs to determine if a test case passed or not. The other way I could have done was to examine the contents of the files created. For some reason, I went with the former. Maybe if I get some time to work on these test cases, I may change the design but as of now it is doing the job albeit via IntelliJ :) Went through your project links and they indeed seem interesting. It would be great for unify-flowret to participate. I wish you all the very best! |
Beta Was this translation helpful? Give feedback.
-
Most likely it’s the difference in carriage return line feed values in the file you’re comparing against vs. what is being generated on the mac. I suspect it would fail on linux in the same way as a result. Will play around with it but I think that’s the difference that in the command line your getting /r vs. /n values at the end of the lines.
Mike
From: Michael Ingardia ***@***.***>
Date: Wednesday, February 7, 2024 at 2:11 PM
To: americanexpress/unify-flowret ***@***.***>, americanexpress/unify-flowret ***@***.***>
Cc: Comment ***@***.***>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Not sure but it seems have to do something with the way your determining success or failure centric to the output to the console which I would probably try to come up with some other way of doing that as there are variability that can easily be introduced centric to new logs, or other things that would cause the unit test to fail, even though logically really nothing is wrong. Trying to determine what the difference is right now will let you know if I find something. In the meantime I will start bringing this into the software I am working on.
http://www.end2endlogic.com
http://www.b2bintegrator.com
Are the two things I am working on
Mike
From: Deepak Arora ***@***.***>
Reply-To: americanexpress/unify-flowret ***@***.***>
Date: Wednesday, February 7, 2024 at 1:55 PM
To: americanexpress/unify-flowret ***@***.***>
Cc: Michael Ingardia ***@***.***>, Comment ***@***.***>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Yes – that is it – I have always run unit tests from within IntelliJ. I too will take a look when I get some time. Thanks!
Regards,
Deepak Arora
From: Michael Ingardia ***@***.***>
Sent: Wednesday, February 7, 2024 1:05 PM
To: americanexpress/unify-flowret ***@***.***>
Cc: Deepak Arora5 ***@***.***>; Author ***@***.***>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Exception -> Cannot resume a case that has already completed. Case id -> 1 > but was: <Received event -> ON_PROCESS_START, isPendAtSameStep -> false Received enqueue request. Json below { "milestones" : [ { "name"
Exception -> Cannot resume a case that has already completed. Case id -> 1
but was: <Received event -> ON_PROCESS_START, isPendAtSameStep -> false
Received enqueue request. Json below
{
"milestones" : [ {
"name" : "case_start_1",
"setup_on" : "case_start",
"type" : "case_level",
"applied_at_age" : "20d",
"clock_starts" : "immediately",
"action" : "CANCEL:CW"
}, {
"name" : "case_start_2",
"setup_on" : "case_start",
"type" : "case_level",
"applied_at_age" : "30d",
"clock_starts" : "immediately",
"action" : "CANCEL:CW"
} ]
}
What is interesting is does not happen when I run through the IDE but does happen when I run from the command line using mvn package, but running the test in intelij the test passes. Could be a race condition or that when maven is running its running the tests concurrently perhaps. Will debug further and get back to you.
Mike
From: Deepak Arora ***@***.***<mailto:***@***.***>>
Reply-To: americanexpress/unify-flowret ***@***.***<mailto:***@***.***>>
Date: Wednesday, February 7, 2024 at 12:22 PM
To: americanexpress/unify-flowret ***@***.***<mailto:***@***.***>>
Cc: Michael Ingardia ***@***.***<mailto:***@***.***>>, Comment ***@***.***<mailto:***@***.***>>
Subject: Re: [americanexpress/unify-flowret] Welcome to unify-flowret Discussions! (Discussion #8)
Really? I just ran TestFlowret in test_singlular package and everything looks fine to me. I am running on Windows. Are you on a Mac? Can you just run the test case testClean() and let me know what error you are seeing? It may have to do with how the text files are stored on Mac - to be honest I have tested these only on Windows. Let me also have someone test it here on Mac and report back.
—
Reply to this email directly, view it on GitHub<#8 (reply in thread)<https://isolate.menlosecurity.com/1/3735928037/https:/github.com/americanexpress/unify-flowret/discussions/8#discussioncomment-8397888>>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA2V2SHK5HFWFYBBNJ44JL3YSOZ4LAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZG44DQOA<https://isolate.menlosecurity.com/1/3735928037/https:/github.com/notifications/unsubscribe-auth/AA2V2SHK5HFWFYBBNJ44JL3YSOZ4LAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZG44DQOA>>.
You are receiving this because you commented.Message ID: ***@***.***<mailto:***@***.***>>
—
Reply to this email directly, view it on GitHub<https://isolate.menlosecurity.com/1/3735928037/https:/github.com/americanexpress/unify-flowret/discussions/8#discussioncomment-8398334>, or unsubscribe<https://isolate.menlosecurity.com/1/3735928037/https:/github.com/notifications/unsubscribe-auth/AD23UJWEKBNP6MVEGPOLXSDYSO63PAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZHAZTGNA>.
You are receiving this because you authored the thread.Message ID: ***@***.******@***.***>>
American Express made the following annotations
This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify us by reply e-mail and immediately and permanently delete this message and any attachments.
American Express Prospective and Existing Customers: For more information about how we protect your privacy, please visit www.americanexpress.com/privacy. If you are located outside the U.S., please select your location at www.americanexpress.com/change-country/ and access the privacy link at the bottom of the page.
American Express a ajouté le commentaire suivant
Ce courrier et toute pièce jointe qu'il contient sont réservés au seul destinataire indiqué et peuvent contenir des renseignements confidentiels et protégés par le secret professionnel. Si vous n'êtes pas le destinataire prévu, toute divulgation, duplication, utilisation ou distribution du courrier ou de toute pièce jointe est interdite. Si vous avez reçu cette communication par erreur, veuillez nous en aviser par courrier et détruire immédiatement le courrier et les pièces jointes.
Clients et prospects d'American Express: Pour plus d'informations sur la façon dont nous protégeons votre vie privée, veuillez visiter www.americanexpress.com/privacy. Si vous êtes situé à l'extérieur des États-Unis, veuillez sélectionner votre emplacement à l'adresse www.americanexpress.com/change-country/ et accéder au lien de confidentialité en bas de la page.
—
Reply to this email directly, view it on GitHub<#8 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA2V2SC7BY5SARI3R77242TYSPE3ZAVCNFSM5RZUHJU2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TQMZZHA4DIOI>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hi - just wanted to let you know that 1.6.0 release has a new section - getting started in 5 minutes - in the readme.md documentation. I hope it helps new people wanting to give Flowret a try. |
Beta Was this translation helpful? Give feedback.
-
Hi all - have released 1.7.1 - no functional changes - a revamp of unit test cases - you can read more about it in the releases section. Thanks |
Beta Was this translation helpful? Give feedback.
-
Thank you Deepak,That is exactly what I was looking for. I think this will be a great fit for our project. MarkOn Nov 20, 2024, at 7:21 PM, Deepak Arora ***@***.***> wrote:
Hi Mark,
Thanks for reaching out and your interest. The engine is very much being used in American Express. It runs one of our big complicated BPM / workflow platforms and has been a great success. It is at present maintained actively by me and we are involving other folks also in this. As you would have seen, the enhancements / changes have thinned down over the past months - this is only due to the fact that it right now has pretty much all that we need and it is stable and battle tested. So from that point of view, it is more or less complete - but we are open to new features and enhancements.
Regarding user data, yes, you are right - that was exactly the intent - there were scenarios that we wanted to use the same step implementation at multiple places in a workflow but wanted it to do something different based on where it was placed in the workflow.
We persist data to a NoSQL database using an implementation of the FlowretDao interface. It is extremely straightforward to use as the case id is expected to be unique functions as a primary key. It is equally straightforward to write to an RDBMS table using another implementation. I cannot share our implementation but these are the steps - have an application object A that manages connections to a NoSQL. Then have an implementation of FlowretDao interface that has access to object A and uses it to get a connection and then do the read and write. Maybe some time in the future, I will include a dummy implementation.
I would not advise writing to the file system for high volumes unless you can ensure that you distribute your files across multiple folders and each folder does not contain more than a few thousand files - filesystems tend to start going unresponsive once you start putting a lot of files in one folder. What you choose as the data store is really up to you - if you ask me - I would suggest a NoSQL or an RDBMS.
To know what gets written out or read, you can use FileDao.java or SampleFlowretDao.java - both are in the test folder.
Hope this helps.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hi, I am new to this library for workflow management. I tried to understand how the parallel execution works, though I understand the theory, I am not able to understand how do I implement the join after each path is completed in the parallel flow? Can anyone help with implementation part? |
Beta Was this translation helpful? Give feedback.
-
👋 Welcome!
We’re using Discussions as a place to connect with other members of our community. We hope that you:
build together 💪.
To get started, comment below with an introduction of yourself and tell us about what you do with this community.
Beta Was this translation helpful? Give feedback.
All reactions