-: Hey there. Eden here.
And before we dive to LangGraph,
I wanted to cover two important theoretical concept
and terminologies we're going to be using constantly
in this course.
The first one is going to be graph, the data structure,
and the other is going to be state machine.
A graph is a mathematical object
that helps us represent relationships.
It consists of nodes, also known as vertices and edges
that connect those nodes.
Graph data structures are incredibly versatile
and they can be used in a wide range of applications
across different fields.
We can use graphs to describe social networks,
transportation maps between cities and roads
and routes between cities.
And what's cool about it is that in computer science
there is a lot of research on this data structures
and a lot of algorithms and property extraction
of those graphs that help us solve a lot of problems
in the real world.
Just as a side note, as a software engineer,
I used to work a lot with graph databases,
working for cybersecurity companies,
leveraging graphs to find and describe attack vectors
of cloud assets on public clouds like AWS, GCP, and Azure,
and also describe the connectivity
of those assets on those clouds.
To ask a question, is this web server internet-facing
and is it connecting into a database,
helping the cloud security posture management?
By the way, I'll leave in the videos resources,
a talk I gave about this topic in Minsk,
you know, Python Developer Meetup discussing this topic
in case this interests you.
And if we want to geek out a little bit,
we can see even the formal definition of a graph,
the mathematical definition where a graph G or V and E
comprised of V, a set of vertices and E, a set of edges
described with a pair X and Y
where X and Y belongs to the vertices set.
And in case you got worried, then this is the last time
we will see math in this course.
So, let's continue.
And a state machine on the other hand
is a model of computation where it consists of states
and transition between those states.
And by defining different states
and the rules for the transition between them,
then the states can manage complex conditions
and sequence in software systems.
And now you can notice that state machines
can be represented as graphs
where the states are nodes and the transitions are edges.
And this visualization helps us understanding
the flow of the state machines
and to manage their complexity.
And here enters LangGraph,
a powerful library built on top of LangChain.
And with LangGraph we can describe our flows
using those nodes and edges,
and we can build very powerful
and sophisticated agentic applications using it.
And we'll see in the course that we'll be describing
some very advanced and sophisticated agents,
and it will be very easy to write them
in LangGraph and to run them.
And that's it for this video.
I think it was important to have an alignment
of what's a graph and what's a state machine
before we dive into Flow Engineering and to LangGraph.