Should I keep them separate? should I map both to common interface? This will screw me then doing actions with the message in lets say MessageManager, its all database work, do I need InMemoryMessageManager? Its going to be error prone duplicate code