Collision response
The step after a collision is detected: actually moving the bodies apart and changing their velocities so the bounce looks right.
The narrow phase hands over a contact point, a normal and a penetration depth (often via EPA). Response does two things with it. Positional correction pushes the shapes out of the overlap — but gently, because moving the full distance in one frame makes everything jitter (Baumgarte stabilization and split impulse are the usual tricks). Velocity resolution applies an impulse along the normal, scaled by restitution and friction.
The hard part is that contacts are not independent: a crate resting on the floor between two other crates has to be solved together. Nearly every engine cheats this by iterating the same impulses a few passes per frame — "sequential impulses", which Erin Catto popularized in Box2D around 2006.