- I'm not sure SequenceId is great for this. How about just 'Id'? It isn't really the Id of a sequence, its the Id of an op.
- How about size_t instead? This value is never transmitted, and doesn't really need a sign.
- How about a typedef:

class WriteOperation {
public:
    typedef size_t Id;

// ...

    virtual void setId(Id id) = 0;
    virtual Id id() = 0;
};

That way you could have functions taking WriteOperation::Id.