Why do direct limits preserve exactness?
I've heard that taking direct limits is an exact functor in the category of modules, and I'm trying to figure out why, as I couldn't find a proof.
Suppose you have homomorphisms $\varphi_i: K_i\to N_i$ and $\psi_i: N_i\to M_i$ for $(K_i,h^i_j)$, $(N_i,g^i_j)$, and $(M_i,f^i_j)$ directed systems of modules such that $0\to K_i\to N_i\to M_i\to 0$ is exact for every $i$.
Why is $0\to\varinjlim K_i\to\varinjlim N_i\to\varinjlim M_i\to 0$ also exact?
So I let $\varphi:\varinjlim K_i\to\varinjlim N_i$ and $\psi:\varinjlim N_i\to\varinjlim M_i$ be the natural homomorphisms. Take $x\in\ker\psi$. Then $x=g^i(x_i)$ for some $x_i\in N_i$. Then $0=\psi(g^i(x_i))=f^i(\psi_i(x_i))$. I know there exists some $j\geq i$ such that $f^i_j(\psi_i(x_i))=0$ in $M_j$. But $f^i_j\circ\psi_i=\psi_j\circ g^i_j$, so $g^i_j(x_i)\in\ker\psi_j=\text{im}(\varphi_j)$. Then $g^i_j(x_i)=\varphi_j(y_j)$ for some $y_j\in K_j$, so $$ x=g^i(x_i)=g^j(g^i_j(x_i))=g^j(\varphi_j(y_j))=\varphi(h^j(y_j)) $$ and so $\ker\psi\subseteq\text{im}\varphi$.
Conversely, suppose $x\in\text{im}\varphi$. Then $x=\varphi(y)$ for some $y=h^i(y_i)$ and $y_i\in K_i$. So $x=\varphi(h^i(y_i))=g^i(\varphi_i(y_i))$. Thus $$ \psi(x)=\psi(g^i(\varphi_i(y_i)))=f^i(\psi_i(\varphi_i(y_i)))=0 $$ since $\psi_i\circ\varphi_i=0$. Then $\ker\psi=\text{im}\varphi$. (Please let me know if I've written nonsense, too many maps can cause me to get lost!)
What is bugging me is, is $\varphi$ injective and $\psi$ surjective to see that the short exact sequence is in fact exact? Is there some obvious fact I'm missing? If possible, is there an explanation in the same vein as the above (i.e. using the maps and manipulating the elements without relying on more general facts from category theory? I'm not too knowledgeable about the latter.) Thanks.
It suffices to show that if $K_i\to M_i\to N_i$ is exact at $M_i$ for each $i$ (and the appropriate squares commute), then $\varinjlim K_i\to \varinjlim M_i\to \varinjlim N_i$ is exact at $\varinjlim M_i$.
(To get that $\varinjlim$ sends short exact sequences to short exact sequences from this, simply apply the argument to $0\to K_i\to M_i$, exact at $K_i$; to $K_i\to M_i\to N_i$; and then to $M_i\to N_i\to 0$).
Call the first map $f_i$ (with induced map of limits $f$), the second $g_i$ (with induced map $g$); use $\kappa$, $\mu$, and $\nu$ for the structure maps.
Given $[(k,i)]$, we have $g(f([(k,i)])) = g([f_i(k),i]) = [g_i(f_i(k)),i] = [0,i]$, so the composition is trivial. That is, $\mathrm{Im}(f)\subseteq \mathrm{Ker}(g)$.
Now assume that $g([(m,i)]) = [(0,j)]$. Then there exists $t\geq i$ such that $\nu_{it}(g_i(m)) = 0$; hence $g_t(\mu_{it}(m)) = 0$, so by exactness of the original diagram we know that there exists $k\in K_t$ such that $f_t(k) = \mu_{it}(m)$. Therefore, $$f([k,t]) = [(f(k),t)] = [(\mu_{it}(m),t)] = [(m,i)],$$ so $[(m,i)]$ lies in the image of $f$. Thus, $\mathrm{Im}(f)\supseteq \mathrm{Ker}(g)$, proving equality.
Now, this proves that $\varinjlim$ is exact; as to "why" it is exact (is there some deep why it is exact)? I don't know if I can answer.