0:01
hello dear audience we are back with
0:04
hello dear audience we are back with
0:04
hello dear audience we are back with another episode of the cloud show today
0:06
another episode of the cloud show today
0:06
another episode of the cloud show today we're going to talk about a different
0:09
we're going to talk about a different
0:09
we're going to talk about a different topic uh that we haven't actually
0:11
topic uh that we haven't actually
0:11
topic uh that we haven't actually approached here on this show before it's
0:13
approached here on this show before it's
0:13
approached here on this show before it's something called resilient programming
0:15
something called resilient programming
0:15
something called resilient programming and the question is what the heck is
0:17
and the question is what the heck is
0:17
and the question is what the heck is resilient programming um joining us
0:20
resilient programming um joining us
0:20
resilient programming um joining us today is the star of the show is a
0:22
today is the star of the show is a
0:22
today is the star of the show is a person who has uh built an open source.
0:25
person who has uh built an open source.
0:25
person who has uh built an open source. net project or NET Framework project
0:27
net project or NET Framework project
0:27
net project or NET Framework project called sight uh which a s net really uh
0:31
called sight uh which a s net really uh
0:31
called sight uh which a s net really uh which is then designed to make it easier
0:33
which is then designed to make it easier
0:33
which is then designed to make it easier to implement business flows where you
0:35
to implement business flows where you
0:35
to implement business flows where you have multiple external Services being
0:38
have multiple external Services being
0:38
have multiple external Services being used at the same time uh together in
0:41
used at the same time uh together in
0:41
used at the same time uh together in conjunction so um let's talk to the uh
0:44
conjunction so um let's talk to the uh
0:44
conjunction so um let's talk to the uh star of the show today it is Thomas
0:48
star of the show today it is Thomas
0:48
star of the show today it is Thomas [Music]
1:01
sest Hey Thomas hi welcome to the show we were just talking
1:03
welcome to the show we were just talking
1:03
welcome to the show we were just talking about how we are neighbors of sorts yeah
1:06
about how we are neighbors of sorts yeah
1:06
about how we are neighbors of sorts yeah yeah I guess in in America we will be
1:08
yeah I guess in in America we will be
1:08
yeah I guess in in America we will be very yeah neighbors next state Yeah
1:11
very yeah neighbors next state Yeah
1:11
very yeah neighbors next state Yeah country though yeah you're in Denmark
1:14
country though yeah you're in Denmark
1:14
country though yeah you're in Denmark and I'm in in Sweden so um tell tell us
1:17
and I'm in in Sweden so um tell tell us
1:17
and I'm in in Sweden so um tell tell us a little bit about yourself what do you
1:19
a little bit about yourself what do you
1:19
a little bit about yourself what do you do and and uh how come you're doing open
1:21
do and and uh how come you're doing open
1:21
do and and uh how come you're doing open source and stuff yeah sure yeah um good
1:24
source and stuff yeah sure yeah um good
1:24
source and stuff yeah sure yeah um good question so I'm uh back in software
1:27
question so I'm uh back in software
1:27
question so I'm uh back in software developer I have like I guess 12 years
1:29
developer I have like I guess 12 years
1:29
developer I have like I guess 12 years of experience now since I finished
1:31
of experience now since I finished
1:31
of experience now since I finished University um and I work for like
1:34
University um and I work for like
1:34
University um and I work for like different banks and different big
1:35
different banks and different big
1:35
different banks and different big companies
1:37
companies um when I was in at Dana Bank um which
1:41
um when I was in at Dana Bank um which
1:41
um when I was in at Dana Bank um which is the biggest bank in Denmark uh we did
1:43
is the biggest bank in Denmark uh we did
1:43
is the biggest bank in Denmark uh we did like um some event sourcing framework
1:46
like um some event sourcing framework
1:46
like um some event sourcing framework and everything and uh as part of that uh
1:49
and everything and uh as part of that uh
1:49
and everything and uh as part of that uh I was um I started thinking about like
1:53
I was um I started thinking about like
1:53
I was um I started thinking about like distributed systems and I wanted to go
1:54
distributed systems and I wanted to go
1:54
distributed systems and I wanted to go back and study um so actually I
1:57
back and study um so actually I
1:57
back and study um so actually I approached um the univiversity in St in
2:00
approached um the univiversity in St in
2:01
approached um the univiversity in St in Norway where they have like um yeah a
2:06
Norway where they have like um yeah a
2:06
Norway where they have like um yeah a team I guess where they focus on on
2:09
team I guess where they focus on on
2:09
team I guess where they focus on on distributed systems right and that was
2:12
distributed systems right and that was
2:12
distributed systems right and that was kind of like the the way that I got into
2:14
kind of like the the way that I got into
2:14
kind of like the the way that I got into this space really because part of what I
2:16
this space really because part of what I
2:16
this space really because part of what I was trying to do was to yeah so you have
2:20
was trying to do was to yeah so you have
2:20
was trying to do was to yeah so you have um raft and P with our famous algorithms
2:23
um raft and P with our famous algorithms
2:23
um raft and P with our famous algorithms and kind of like you have them in eccd
2:26
and kind of like you have them in eccd
2:26
and kind of like you have them in eccd it's based on raft and so you have these
2:28
it's based on raft and so you have these
2:28
it's based on raft and so you have these kind of like very fundamental
2:30
kind of like very fundamental
2:30
kind of like very fundamental uh distributed system algorithms and uh
2:33
uh distributed system algorithms and uh
2:33
uh distributed system algorithms and uh and I was trying to basically to
2:36
and I was trying to basically to
2:36
and I was trying to basically to simplify the way that you would
2:38
simplify the way that you would
2:38
simplify the way that you would Implement these things um because one of
2:40
Implement these things um because one of
2:40
Implement these things um because one of the things that is a bit difficult with
2:43
the things that is a bit difficult with
2:43
the things that is a bit difficult with them is that you get messages you have
2:45
them is that you get messages you have
2:45
them is that you get messages you have to wait for like X number of messages
2:47
to wait for like X number of messages
2:47
to wait for like X number of messages before you continue and uh if you have
2:50
before you continue and uh if you have
2:50
before you continue and uh if you have like a Crest doing that uh okay you
2:53
like a Crest doing that uh okay you
2:53
like a Crest doing that uh okay you could say run that then then that poses
2:55
could say run that then then that poses
2:56
could say run that then then that poses all kind of problems so right so that
2:59
all kind of problems so right so that
2:59
all kind of problems so right so that was kind of like good yeah sirry yeah so
3:01
was kind of like good yeah sirry yeah so
3:01
was kind of like good yeah sirry yeah so that's that's what we were do doing uh
3:03
that's that's what we were do doing uh
3:03
that's that's what we were do doing uh with that let's let's pull it back just
3:05
with that let's let's pull it back just
3:05
with that let's let's pull it back just a little bit just to to put it in a a a
3:07
a little bit just to to put it in a a a
3:07
a little bit just to to put it in a a a business context to to figure out first
3:09
business context to to figure out first
3:09
business context to to figure out first for the audience what what kind of a
3:11
for the audience what what kind of a
3:11
for the audience what what kind of a problem is that that that we are trying
3:12
problem is that that that we are trying
3:12
problem is that that that we are trying to solve here um we have we have
3:17
to solve here um we have we have
3:17
to solve here um we have we have something called resilient programming
3:18
something called resilient programming
3:18
something called resilient programming and we we need to implement our business
3:21
and we we need to implement our business
3:21
and we we need to implement our business flows using multiple Services what's
3:23
flows using multiple Services what's
3:23
flows using multiple Services what's this about yeah yeah it's a good
3:25
this about yeah yeah it's a good
3:25
this about yeah yeah it's a good question yeah so so all this like very
3:28
question yeah so so all this like very
3:28
question yeah so so all this like very theoretical stuff is actually also I
3:31
theoretical stuff is actually also I
3:31
theoretical stuff is actually also I realized after um doing my studies that
3:34
realized after um doing my studies that
3:34
realized after um doing my studies that it actually makes sense in a different
3:35
it actually makes sense in a different
3:35
it actually makes sense in a different space which is like um yeah Microsoft
3:38
space which is like um yeah Microsoft
3:39
space which is like um yeah Microsoft architectures and Enterprise
3:40
architectures and Enterprise
3:40
architectures and Enterprise architectures in general because when
3:43
architectures in general because when
3:43
architectures in general because when you have like a business flow that
3:46
you have like a business flow that
3:46
you have like a business flow that communicates with other external systems
3:48
communicates with other external systems
3:48
communicates with other external systems which is basically almost any flow these
3:50
which is basically almost any flow these
3:50
which is basically almost any flow these days right even a database you could say
3:52
days right even a database you could say
3:52
days right even a database you could say it's an external system right and you
3:55
it's an external system right and you
3:55
it's an external system right and you have to take care of the situations uh
3:58
have to take care of the situations uh
3:58
have to take care of the situations uh what happens if the system crashes while
4:02
what happens if the system crashes while
4:02
what happens if the system crashes while executing these things yeah and and and
4:05
executing these things yeah and and and
4:05
executing these things yeah and and and today actually we also have another like
4:07
today actually we also have another like
4:07
today actually we also have another like Avenue where we also see this problem
4:09
Avenue where we also see this problem
4:09
Avenue where we also see this problem and that is when we have like
4:12
and that is when we have like
4:12
and that is when we have like um releases right deployments of our
4:15
um releases right deployments of our
4:15
um releases right deployments of our software with new code that we're
4:17
software with new code that we're
4:17
software with new code that we're actually inducing crashes I guess you
4:20
actually inducing crashes I guess you
4:20
actually inducing crashes I guess you could say ourselves right because we are
4:22
could say ourselves right because we are
4:22
could say ourselves right because we are we're flipping the rolling releases
4:24
we're flipping the rolling releases
4:24
we're flipping the rolling releases right so we we are we restarting our
4:26
right so we we are we restarting our
4:26
right so we we are we restarting our services and we can't just wait
4:28
services and we can't just wait
4:28
services and we can't just wait arbitrarily long
4:30
arbitrarily long so then a fair point yeah yeah so kind
4:33
so then a fair point yeah yeah so kind
4:33
so then a fair point yeah yeah so kind of like what it's trying to solve is how
4:36
of like what it's trying to solve is how
4:36
of like what it's trying to solve is how do we actually go about uh ensuring that
4:40
do we actually go about uh ensuring that
4:40
do we actually go about uh ensuring that when a system restarts after it's
4:43
when a system restarts after it's
4:43
when a system restarts after it's halfway through whatever flow it's doing
4:45
halfway through whatever flow it's doing
4:45
halfway through whatever flow it's doing how can it pick up from that point and
4:47
how can it pick up from that point and
4:47
how can it pick up from that point and continue where it was before yeah yeah
4:50
continue where it was before yeah yeah
4:50
continue where it was before yeah yeah yeah where it was before and that's
4:52
yeah where it was before and that's
4:52
yeah where it was before and that's actually not that easy um there there's
4:55
actually not that easy um there there's
4:55
actually not that easy um there there's different examples but I guess if you
4:57
different examples but I guess if you
4:57
different examples but I guess if you just like imagine an auto flow where the
5:01
just like imagine an auto flow where the
5:01
just like imagine an auto flow where the first thing it does is kind of like it
5:02
first thing it does is kind of like it
5:02
first thing it does is kind of like it generates a random um transaction ID
5:05
generates a random um transaction ID
5:05
generates a random um transaction ID right let's say that it should talk to
5:07
right let's say that it should talk to
5:07
right let's say that it should talk to strive and generates the random
5:09
strive and generates the random
5:09
strive and generates the random transaction ID and then it reserves the
5:11
transaction ID and then it reserves the
5:11
transaction ID and then it reserves the funds and it ships the products and then
5:13
funds and it ships the products and then
5:13
funds and it ships the products and then it crashes before it actually is able to
5:15
it crashes before it actually is able to
5:15
it crashes before it actually is able to capture the funds you just restart the
5:17
capture the funds you just restart the
5:17
capture the funds you just restart the flow from the top again then the flow
5:19
flow from the top again then the flow
5:19
flow from the top again then the flow will generate a new good a new
5:22
will generate a new good a new
5:22
will generate a new good a new transaction and then you actually have
5:24
transaction and then you actually have
5:24
transaction and then you actually have that it's diverging into a different
5:26
that it's diverging into a different
5:26
that it's diverging into a different state that's right that's right so what
5:29
state that's right that's right so what
5:29
state that's right that's right so what you want to be able to do is is is um um
5:32
you want to be able to do is is is um um
5:32
you want to be able to do is is is um um replay and and and and kind of pick up
5:35
replay and and and and kind of pick up
5:35
replay and and and and kind of pick up where you left off or where you were
5:37
where you left off or where you were
5:37
where you left off or where you were interrupted so rudely right it could
5:40
interrupted so rudely right it could
5:40
interrupted so rudely right it could literally be uh an update to A system
5:43
literally be uh an update to A system
5:43
literally be uh an update to A system that is is part of this flow where you
5:45
that is is part of this flow where you
5:45
that is is part of this flow where you are currently rolling out an update to
5:47
are currently rolling out an update to
5:47
are currently rolling out an update to that system and now everything else that
5:49
that system and now everything else that
5:49
that system and now everything else that wants to use that system needs to wait
5:51
wants to use that system needs to wait
5:51
wants to use that system needs to wait for a bit it's not going to work until
5:52
for a bit it's not going to work until
5:52
for a bit it's not going to work until this come back comes back on again and
5:55
this come back comes back on again and
5:55
this come back comes back on again and and and easy as it sounds you know
5:57
and and easy as it sounds you know
5:57
and and easy as it sounds you know theoretically to to tear you know to
5:59
theoretically to to tear you know to
5:59
theoretically to to tear you know to break down a system into lots of
6:01
break down a system into lots of
6:01
break down a system into lots of different
6:02
different microservices you get this you get this
6:05
microservices you get this you get this
6:05
microservices you get this you get this Tango problem everybody needs to dance
6:07
Tango problem everybody needs to dance
6:07
Tango problem everybody needs to dance right yeah yeah exactly that's very Co
6:11
right yeah yeah exactly that's very Co
6:11
right yeah yeah exactly that's very Co yeah so so it's simple yeah to to break
6:14
yeah so so it's simple yeah to to break
6:14
yeah so so it's simple yeah to to break up into microservice but you introduce a
6:16
up into microservice but you introduce a
6:16
up into microservice but you introduce a lot of different issues that I can see
6:19
lot of different issues that I can see
6:19
lot of different issues that I can see that okay so that's brilliant so so you
6:22
that okay so that's brilliant so so you
6:22
that okay so that's brilliant so so you have been then coding on a uh on an open
6:25
have been then coding on a uh on an open
6:25
have been then coding on a uh on an open source project of your own called sler
6:28
source project of your own called sler
6:28
source project of your own called sler which which then is a framework that can
6:31
which which then is a framework that can
6:31
which which then is a framework that can can do these things it can it can model
6:34
can do these things it can it can model
6:34
can do these things it can it can model business flows um yeah yeah so so what
6:37
business flows um yeah yeah so so what
6:37
business flows um yeah yeah so so what it tries to do there different
6:39
it tries to do there different
6:39
it tries to do there different approaches also in the cloud space I
6:41
approaches also in the cloud space I
6:41
approaches also in the cloud space I think AWS has like is itl definition you
6:45
think AWS has like is itl definition you
6:45
think AWS has like is itl definition you can do like workflows using yeah um but
6:49
can do like workflows using yeah um but
6:49
can do like workflows using yeah um but but a different approach is is that you
6:51
but a different approach is is that you
6:51
but a different approach is is that you try to allow the the developer to use
6:54
try to allow the the developer to use
6:54
try to allow the the developer to use code like ordinary code and then you you
6:57
code like ordinary code and then you you
6:57
code like ordinary code and then you you you do some different uh calls or or
7:00
you do some different uh calls or or
7:00
you do some different uh calls or or wrap the code in a certain way uh that
7:04
wrap the code in a certain way uh that
7:04
wrap the code in a certain way uh that allows this replay to to be able to to
7:07
allows this replay to to be able to to
7:07
allows this replay to to be able to to to happen after a crash but the code is
7:09
to happen after a crash but the code is
7:09
to happen after a crash but the code is very much normal code right so it's it's
7:13
very much normal code right so it's it's
7:13
very much normal code right so it's it's not like yeah um so it's not like a yl
7:17
not like yeah um so it's not like a yl
7:17
not like yeah um so it's not like a yl file or something completely different
7:18
file or something completely different
7:18
file or something completely different it's it's what the developers already
7:20
it's it's what the developers already
7:20
it's it's what the developers already used to right and that's a good point
7:23
used to right and that's a good point
7:23
used to right and that's a good point because if you have this um workflow
7:27
because if you have this um workflow
7:27
because if you have this um workflow language which is a completely separate
7:29
language which is a completely separate
7:29
language which is a completely separate thing then you have to know two things
7:30
thing then you have to know two things
7:30
thing then you have to know two things and you have to maintain two things yeah
7:32
and you have to maintain two things yeah
7:32
and you have to maintain two things yeah but if you can express your your
7:35
but if you can express your your
7:35
but if you can express your your workflow in code then you are on home
7:38
workflow in code then you are on home
7:38
workflow in code then you are on home field because you already do code every
7:40
field because you already do code every
7:41
field because you already do code every day yeah yeah exactly yeah and you can
7:43
day yeah yeah exactly yeah and you can
7:43
day yeah yeah exactly yeah and you can do integration test unit test all all
7:45
do integration test unit test all all
7:45
do integration test unit test all all these things so you get all all the nice
7:47
these things so you get all all the nice
7:47
these things so you get all all the nice things that that you already have yeah
7:49
things that that you already have yeah
7:49
things that that you already have yeah when you code anyway uh and yeah so yeah
7:54
when you code anyway uh and yeah so yeah
7:54
when you code anyway uh and yeah so yeah so so
7:55
so so that's yeah so that's really what it's
7:57
that's yeah so that's really what it's
7:57
that's yeah so that's really what it's about then then I'm also trying a bit
7:59
about then then I'm also trying a bit
8:00
about then then I'm also trying a bit to not just to copy what I guess some of
8:03
to not just to copy what I guess some of
8:03
to not just to copy what I guess some of the other Alternatives that are like a
8:05
the other Alternatives that are like a
8:05
the other Alternatives that are like a doable functions and and Dapper and and
8:09
doable functions and and Dapper and and
8:09
doable functions and and Dapper and and also temporal uh I'm trying to to make
8:12
also temporal uh I'm trying to to make
8:12
also temporal uh I'm trying to to make it simpler so simpler developer
8:15
it simpler so simpler developer
8:15
it simpler so simpler developer experience um and also there's uh as as
8:20
experience um and also there's uh as as
8:20
experience um and also there's uh as as far as I know at least these Frameworks
8:21
far as I know at least these Frameworks
8:21
far as I know at least these Frameworks do not handle like receiving lots of
8:24
do not handle like receiving lots of
8:24
do not handle like receiving lots of different messages so a lot of the times
8:27
different messages so a lot of the times
8:27
different messages so a lot of the times in Microsoft ACC just um you have a
8:30
in Microsoft ACC just um you have a
8:30
in Microsoft ACC just um you have a situation where you want to wait for X
8:31
situation where you want to wait for X
8:31
situation where you want to wait for X number of messages or you have a flow
8:34
number of messages or you have a flow
8:34
number of messages or you have a flow and you have messages coming in from a
8:35
and you have messages coming in from a
8:35
and you have messages coming in from a message
8:37
message bus and that's also something that that
8:40
bus and that's also something that that
8:40
bus and that's also something that that is similar to link really you can write
8:42
is similar to link really you can write
8:42
is similar to link really you can write kind of like I want to wait for these
8:44
kind of like I want to wait for these
8:44
kind of like I want to wait for these messages and then I want to do something
8:46
messages and then I want to do something
8:46
messages and then I want to do something and that's also you're also able to
8:48
and that's also you're also able to
8:48
and that's also you're also able to write that in a way that if you Cress
8:50
write that in a way that if you Cress
8:50
write that in a way that if you Cress and then restart you you can still
8:52
and then restart you you can still
8:52
and then restart you you can still continue from the point where you got to
8:54
continue from the point where you got to
8:54
continue from the point where you got to that's kind
8:55
that's kind of yeah so how does this how does this
8:59
of yeah so how does this how does this
8:59
of yeah so how does this how does this thing then I mean what happens if you
9:01
thing then I mean what happens if you
9:01
thing then I mean what happens if you are halfway through then you have some
9:03
are halfway through then you have some
9:03
are halfway through then you have some some State and some data that you need
9:05
some State and some data that you need
9:05
some State and some data that you need to remember somehow and then pick up and
9:08
to remember somehow and then pick up and
9:08
to remember somehow and then pick up and continue how how does it handle this
9:11
continue how how does it handle this
9:11
continue how how does it handle this yeah so so all of these Frameworks they
9:14
yeah so so all of these Frameworks they
9:14
yeah so so all of these Frameworks they have like a persistence layer uh and and
9:17
have like a persistence layer uh and and
9:17
have like a persistence layer uh and and slide you can use uh the different SQL
9:20
slide you can use uh the different SQL
9:20
slide you can use uh the different SQL servers so you have postgress and SQL
9:23
servers so you have postgress and SQL
9:23
servers so you have postgress and SQL server and also my it can be other
9:26
server and also my it can be other
9:26
server and also my it can be other things as well it doesn't have to be a
9:28
things as well it doesn't have to be a
9:28
things as well it doesn't have to be a relational Bas but I guess they're the
9:30
relational Bas but I guess they're the
9:30
relational Bas but I guess they're the most common ones um so so basically as
9:34
most common ones um so so basically as
9:34
most common ones um so so basically as you go along doing your your your flow
9:37
you go along doing your your your flow
9:37
you go along doing your your your flow the framework uh writes the different
9:39
the framework uh writes the different
9:39
the framework uh writes the different state changes or what happens to the
9:42
state changes or what happens to the
9:42
state changes or what happens to the database and then if it crashes and it
9:45
database and then if it crashes and it
9:45
database and then if it crashes and it starts up again it just loads all of
9:47
starts up again it just loads all of
9:47
starts up again it just loads all of these different actions or side effects
9:50
these different actions or side effects
9:50
these different actions or side effects that happens previously it just goes
9:52
that happens previously it just goes
9:52
that happens previously it just goes okay I'm back okay where was I exactly
9:56
okay I'm back okay where was I exactly
9:56
okay I'm back okay where was I exactly yeah what happened what happened okay
9:58
yeah what happened what happened okay
9:58
yeah what happened what happened okay I'm back all right that's cool and so so
10:01
I'm back all right that's cool and so so
10:02
I'm back all right that's cool and so so essentially you're what you're saying is
10:03
essentially you're what you're saying is
10:03
essentially you're what you're saying is that to run this thing and and let let's
10:05
that to run this thing and and let let's
10:05
that to run this thing and and let let's talk a little bit about that you need
10:07
talk a little bit about that you need
10:07
talk a little bit about that you need you need to have a database somewhere in
10:09
you need to have a database somewhere in
10:09
you need to have a database somewhere in the background and the framework is
10:10
the background and the framework is
10:10
the background and the framework is talking to the database the the the
10:12
talking to the database the the the
10:12
talking to the database the the the developer is not using they're they just
10:14
developer is not using they're they just
10:14
developer is not using they're they just have a database but the developer is
10:17
have a database but the developer is
10:17
have a database but the developer is expressing things which are then
10:19
expressing things which are then
10:19
expressing things which are then persisted the the the the progress steps
10:22
persisted the the the the progress steps
10:22
persisted the the the the progress steps are then persisted automatically on the
10:23
are then persisted automatically on the
10:23
are then persisted automatically on the back end um all right cool very cool so
10:27
back end um all right cool very cool so
10:27
back end um all right cool very cool so how does how does a developer uh get
10:29
how does how does a developer uh get
10:29
how does how does a developer uh get into using this how do how do they start
10:31
into using this how do how do they start
10:31
into using this how do how do they start uh if they wanted to use S and and like
10:34
uh if they wanted to use S and and like
10:34
uh if they wanted to use S and and like what how does it how does s run where
10:37
what how does it how does s run where
10:37
what how does it how does s run where and how does it run yeah yeah good
10:39
and how does it run yeah yeah good
10:39
and how does it run yeah yeah good question so you can just visit the
10:41
question so you can just visit the
10:41
question so you can just visit the address s.net that will redirect to the
10:44
address s.net that will redirect to the
10:44
address s.net that will redirect to the GitHub page uh which has a lot of
10:47
GitHub page uh which has a lot of
10:47
GitHub page uh which has a lot of documentations about how to get started
10:49
documentations about how to get started
10:49
documentations about how to get started but the idea basically is is that it
10:51
but the idea basically is is that it
10:51
but the idea basically is is that it should be as simple as possible so you
10:53
should be as simple as possible so you
10:53
should be as simple as possible so you just download a n package and then you
10:55
just download a n package and then you
10:55
just download a n package and then you can do a bit of setup in the program CS
10:59
can do a bit of setup in the program CS
10:59
can do a bit of setup in the program CS and and then you're then you're up and
11:00
and and then you're then you're up and
11:00
and and then you're then you're up and running then you then you define these
11:02
running then you then you define these
11:02
running then you then you define these different flows uh just by inheriting
11:05
different flows uh just by inheriting
11:05
different flows uh just by inheriting from a base class and then you're ready
11:07
from a base class and then you're ready
11:07
from a base class and then you're ready to go that will kind of like give you
11:09
to go that will kind of like give you
11:09
to go that will kind of like give you the different abstractions or tools that
11:12
the different abstractions or tools that
11:12
the different abstractions or tools that the developer needs to actually start
11:14
the developer needs to actually start
11:14
the developer needs to actually start using the framework that's really cool
11:16
using the framework that's really cool
11:16
using the framework that's really cool so you wanted it to be really simple
11:17
so you wanted it to be really simple
11:17
so you wanted it to be really simple then so for those of us who are
11:20
then so for those of us who are
11:20
then so for those of us who are developers here they understood what you
11:21
developers here they understood what you
11:21
developers here they understood what you just said and I I I get what you're
11:23
just said and I I I get what you're
11:23
just said and I I I get what you're talking about I love how how easy it
11:25
talking about I love how how easy it
11:25
talking about I love how how easy it sounds to use really uh just uh
11:28
sounds to use really uh just uh
11:28
sounds to use really uh just uh essentially just point to the the
11:30
essentially just point to the the
11:30
essentially just point to the the reference the package get it downloaded
11:33
reference the package get it downloaded
11:33
reference the package get it downloaded um and and inherit the base class and
11:34
um and and inherit the base class and
11:34
um and and inherit the base class and and doing some configuration and you're
11:36
and doing some configuration and you're
11:36
and doing some configuration and you're Off to the Races yeah exactly yeah that
11:40
Off to the Races yeah exactly yeah that
11:40
Off to the Races yeah exactly yeah that that's all the idea was that it was kind
11:43
that's all the idea was that it was kind
11:43
that's all the idea was that it was kind of like meant to work very seiously in
11:45
of like meant to work very seiously in
11:46
of like meant to work very seiously in in like microservice architectures so so
11:49
in like microservice architectures so so
11:49
in like microservice architectures so so you can just have your microservice uh
11:51
you can just have your microservice uh
11:51
you can just have your microservice uh and you can add this this framework to
11:54
and you can add this this framework to
11:54
and you can add this this framework to the to the um uh yeah to to your micros
11:58
the to the um uh yeah to to your micros
11:58
the to the um uh yeah to to your micros service and then then it will just scale
12:00
service and then then it will just scale
12:00
service and then then it will just scale behind the scenes which with so it
12:02
behind the scenes which with so it
12:02
behind the scenes which with so it doesn't matter if you have if you
12:03
doesn't matter if you have if you
12:04
doesn't matter if you have if you replicate from 3 to 5 to seven or I mean
12:07
replicate from 3 to 5 to seven or I mean
12:07
replicate from 3 to 5 to seven or I mean the framework and behind will just also
12:09
the framework and behind will just also
12:09
the framework and behind will just also scale in the same way so
12:12
scale in the same way so
12:12
scale in the same way so fascinating yeah and so you you just um
12:16
fascinating yeah and so you you just um
12:16
fascinating yeah and so you you just um then you you just had this idea based on
12:18
then you you just had this idea based on
12:18
then you you just had this idea based on on what you were uh experiencing then
12:21
on what you were uh experiencing then
12:21
on what you were uh experiencing then when you were working with with
12:23
when you were working with with
12:23
when you were working with with customers uh I guess yeah yeah so so it
12:27
customers uh I guess yeah yeah so so it
12:27
customers uh I guess yeah yeah so so it it came from from uh the I I guess my
12:30
it came from from uh the I I guess my
12:30
it came from from uh the I I guess my time at the University where I was able
12:32
time at the University where I was able
12:32
time at the University where I was able to see okay actually we can make these
12:35
to see okay actually we can make these
12:35
to see okay actually we can make these complicated algorithms simpler but then
12:37
complicated algorithms simpler but then
12:37
complicated algorithms simpler but then when I when I finished that and got back
12:39
when I when I finished that and got back
12:39
when I when I finished that and got back into industry I also worked for another
12:40
into industry I also worked for another
12:40
into industry I also worked for another bank at that point I could see that that
12:42
bank at that point I could see that that
12:42
bank at that point I could see that that there was a lot of like you talk about
12:44
there was a lot of like you talk about
12:44
there was a lot of like you talk about sagas and stuff you have these
12:46
sagas and stuff you have these
12:46
sagas and stuff you have these distributed or this patterns in in in
12:49
distributed or this patterns in in in
12:49
distributed or this patterns in in in distributed systems and and and the
12:51
distributed systems and and and the
12:51
distributed systems and and and the developer experience when actually
12:52
developer experience when actually
12:52
developer experience when actually writing these sagas or workflows uh was
12:55
writing these sagas or workflows uh was
12:56
writing these sagas or workflows uh was not very pleasant it was it was very far
12:58
not very pleasant it was it was very far
12:58
not very pleasant it was it was very far from from from what you would write a
13:00
from from from what you would write a
13:00
from from from what you would write a normal code um right and and that kind
13:03
normal code um right and and that kind
13:03
normal code um right and and that kind of like got me thinking that I could
13:05
of like got me thinking that I could
13:05
of like got me thinking that I could take the ideas from from my studies and
13:08
take the ideas from from my studies and
13:08
take the ideas from from my studies and then actually apply them into this space
13:11
then actually apply them into this space
13:11
then actually apply them into this space instead um so yeah that's so how are you
13:15
instead um so yeah that's so how are you
13:15
instead um so yeah that's so how are you using it yourself today are you do you
13:18
using it yourself today are you do you
13:18
using it yourself today are you do you have any well you don't have to tell
13:19
have any well you don't have to tell
13:19
have any well you don't have to tell tell me exactly which projects but do
13:21
tell me exactly which projects but do
13:21
tell me exactly which projects but do you have any interesting projects that
13:23
you have any interesting projects that
13:23
you have any interesting projects that are using this now um so I'm I'm still
13:26
are using this now um so I'm I'm still
13:26
are using this now um so I'm I'm still I'm still I mean actually that could be
13:28
I'm still I mean actually that could be
13:28
I'm still I mean actually that could be another talk talking about how it's hard
13:29
another talk talking about how it's hard
13:29
another talk talking about how it's hard to get Open sauce you have a bit of a
13:32
to get Open sauce you have a bit of a
13:32
to get Open sauce you have a bit of a chick in an neck problem um definitely
13:35
chick in an neck problem um definitely
13:35
chick in an neck problem um definitely yeah I mean I've presented quite a few
13:37
yeah I mean I've presented quite a few
13:38
yeah I mean I've presented quite a few times and people really like it um so so
13:41
times and people really like it um so so
13:41
times and people really like it um so so that's good I think it's a bit difficult
13:43
that's good I think it's a bit difficult
13:43
that's good I think it's a bit difficult I guess in your workplace to kind of
13:45
I guess in your workplace to kind of
13:45
I guess in your workplace to kind of like take these things and they they're
13:47
like take these things and they they're
13:47
like take these things and they they're interested but I think it will still be
13:49
interested but I think it will still be
13:49
interested but I think it will still be maybe half a year before they will get
13:52
maybe half a year before they will get
13:52
maybe half a year before they will get get ready to to use it it's a scaling
13:54
get ready to to use it it's a scaling
13:54
get ready to to use it it's a scaling thing then so so uh just like if if you
13:57
thing then so so uh just like if if you
13:57
thing then so so uh just like if if you don't have any projects running then you
13:59
don't have any projects running then you
13:59
don't have any projects running then you will never have any projects running it
14:01
will never have any projects running it
14:01
will never have any projects running it I I I shouldn't say never that sounds
14:02
I I I shouldn't say never that sounds
14:02
I I I shouldn't say never that sounds that sounds
14:03
that sounds hard basically not I'm not saying you
14:06
hard basically not I'm not saying you
14:06
hard basically not I'm not saying you heard it here first because I did look
14:07
heard it here first because I did look
14:07
heard it here first because I did look at look up a video uh where you
14:09
at look up a video uh where you
14:09
at look up a video uh where you presented this already with with the
14:11
presented this already with with the
14:11
presented this already with with the Microsoft guy with the yeah and then I
14:14
Microsoft guy with the yeah and then I
14:14
Microsoft guy with the yeah and then I and then I also um I did take a look at
14:17
and then I also um I did take a look at
14:17
and then I also um I did take a look at the code a little bit and and I would I
14:19
the code a little bit and and I would I
14:19
the code a little bit and and I would I would definitely agree that this is cool
14:21
would definitely agree that this is cool
14:21
would definitely agree that this is cool and it seems I haven't really gotten
14:25
and it seems I haven't really gotten
14:25
and it seems I haven't really gotten down to to code anything with it but I
14:27
down to to code anything with it but I
14:27
down to to code anything with it but I could completely follow along and it was
14:29
could completely follow along and it was
14:29
could completely follow along and it was n difficult it was intuitive so I hope
14:32
n difficult it was intuitive so I hope
14:32
n difficult it was intuitive so I hope that you will have you know good
14:34
that you will have you know good
14:34
that you will have you know good fortunes with this no thank
14:37
fortunes with this no thank
14:37
fortunes with this no thank you thank you I think I I think the
14:40
you thank you I think I I think the
14:40
you thank you I think I I think the point at least for people seeing it if
14:42
point at least for people seeing it if
14:42
point at least for people seeing it if if they're interested I mean do reach
14:43
if they're interested I mean do reach
14:43
if they're interested I mean do reach out or I guess otherwise it's always
14:46
out or I guess otherwise it's always
14:46
out or I guess otherwise it's always nice if you have kind of like just a
14:48
nice if you have kind of like just a
14:48
nice if you have kind of like just a simple you don't have to do a big bang
14:50
simple you don't have to do a big bang
14:50
simple you don't have to do a big bang and and everything runs on this but you
14:52
and and everything runs on this but you
14:52
and and everything runs on this but you could just have like a scenario where
14:53
could just have like a scenario where
14:53
could just have like a scenario where you say okay let's have a look how does
14:56
you say okay let's have a look how does
14:56
you say okay let's have a look how does it work I mean I've that's a lot of test
14:58
it work I mean I've that's a lot of test
14:58
it work I mean I've that's a lot of test and I've work worked on it for yeah I
14:59
and I've work worked on it for yeah I
14:59
and I've work worked on it for yeah I guess three years now so wow it should
15:03
guess three years now so wow it should
15:03
guess three years now so wow it should be it should be in a pretty good state
15:05
be it should be in a pretty good state
15:05
be it should be in a pretty good state but yeah there you go so if you want to
15:07
but yeah there you go so if you want to
15:07
but yeah there you go so if you want to help out with this very interesting
15:09
help out with this very interesting
15:09
help out with this very interesting topic or or project open source project
15:11
topic or or project open source project
15:11
topic or or project open source project you should contact Thomas and and offer
15:15
you should contact Thomas and and offer
15:15
you should contact Thomas and and offer to help definitely yeah any any help and
15:19
to help definitely yeah any any help and
15:19
to help definitely yeah any any help and any feedback would be really appreciated
15:21
any feedback would be really appreciated
15:21
any feedback would be really appreciated yeah definitely fantastic well I have to
15:23
yeah definitely fantastic well I have to
15:23
yeah definitely fantastic well I have to tell you that I love this kind of
15:25
tell you that I love this kind of
15:25
tell you that I love this kind of geekery just to get down to to it and
15:27
geekery just to get down to to it and
15:27
geekery just to get down to to it and talk we didn't show here today of course
15:29
talk we didn't show here today of course
15:30
talk we didn't show here today of course it's not really the purpose of this show
15:31
it's not really the purpose of this show
15:31
it's not really the purpose of this show but we did get to talk about how it
15:33
but we did get to talk about how it
15:33
but we did get to talk about how it works and how it how it ticks and why it
15:35
works and how it how it ticks and why it
15:36
works and how it how it ticks and why it exists and all these interesting things
15:37
exists and all these interesting things
15:37
exists and all these interesting things and I I think that's uh plenty
15:40
and I I think that's uh plenty
15:40
and I I think that's uh plenty fascinating and I I love this kind of
15:42
fascinating and I I love this kind of
15:42
fascinating and I I love this kind of geekery so that's good I really want to
15:44
geekery so that's good I really want to
15:44
geekery so that's good I really want to thank you for being on the show today it
15:46
thank you for being on the show today it
15:46
thank you for being on the show today it was it was a pleasure to have you and uh
15:49
was it was a pleasure to have you and uh
15:49
was it was a pleasure to have you and uh and I wish you the best of luck with
15:51
and I wish you the best of luck with
15:51
and I wish you the best of luck with sner and uh you know your open source
15:53
sner and uh you know your open source
15:53
sner and uh you know your open source project go for it thank you Mar yeah
15:56
project go for it thank you Mar yeah
15:56
project go for it thank you Mar yeah thank you for having me really
15:57
thank you for having me really
15:57
thank you for having me really absolutely was my pleasure have a great
15:59
absolutely was my pleasure have a great
15:59
absolutely was my pleasure have a great day and audience see you next time on
16:01
day and audience see you next time on
16:01
day and audience see you next time on the cloud show
16:03
the cloud show [Music]