Join this live session with Magnus Mårtensson ft. Thomas Stidsborg Sylvest for the next episode of The Cloud Show with Magnus Mårtensson on September 11, at 01:05 PM (EST).
The show is about cloud leadership and all the important questions relating to cloud projects. Certainly, many matters when a company is going to and wants to be successful in the cloud, are about technology. However, there are many additional matters, adjacent to technology, that we also need to tend to regarding business strategy, human resources, organizational change, planning for a technical cloud approach, and many more questions. These conversations are critical for a healthy cloud and for a swift and accurate cloud approach.
GUEST SPEAKERS
He is an ambitious and passionate software developer with extensive experience in developing complex distributed back-end systems, microservices, custom frameworks, and websites using .NET.
In addition, He is the proud author of Cleipnir, an open-source workflow-as-code framework. He possesses a strong theoretical foundation gained through my education, complemented by valuable practical experience throughout my career.
📺 CSharp TV - Dev Streaming Destination http://csharp.tv
🌎 C# Corner - Community of Software and Data Developers https://www.c-sharpcorner.com
#CSharpTV #csharpcorner #TheCloudShow #CSharp #Interview
Show More Show Less View Video Transcript
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]
0:57
sest Hey Thomas hi
1:01
sest Hey Thomas hi
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
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
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
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
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
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
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
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
16:03
the cloud show [Music]
#Windows & .NET


