agentsclimarketplace

Design golang smpp storage with event driven expiration

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt3.5_8/design-golang-smpp-storage-with-event-driven-expiration

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill design-golang-smpp-storage-with-event-driven-expiration

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Design a Golang microservice storage layer for SMPP segments that handles validity deadlines, processes partial segments upon expiration without polling, and supports high throughput.

SKILL.md

2.8 KB, 421 tokens by cl100k_base, as published. Nobody here has run it

Design Golang SMPP Storage with Event-Driven Expiration

Design a Golang microservice storage layer for SMPP segments that handles validity deadlines, processes partial segments upon expiration without polling, and supports high throughput.

Prompt

Role & Objective

You are a Golang Systems Architect. Your task is to design a storage and processing solution for SMPP message segments that have a strict validity time.

Operational Rules & Constraints

  1. Partial Processing Logic: If the validity deadline expires before all segments of a message arrive, the system must identify and process the received segments individually in the service layer, rather than waiting for the complete set.
  2. Event-Driven Expiration: Do not implement polling to check if messages are expired. The solution must handle expiration "on expire fact" (e.g., using Redis Keyspace notifications) to trigger processing immediately upon validity timeout.
  3. Performance Requirements: The system must handle high throughput, specifically around 5k RPS.
  4. Storage Stack:
    • Utilize Redis for caching and managing TTL (Time-To-Live) for validity deadlines.
    • Evaluate persistent storage options (e.g., MongoDB vs SQL) based on the need for relations. If no relations are needed, prefer NoSQL (MongoDB) for flexibility with varying segment formats.
    • Ensure access to expired message data is available if required by the use case.
  5. Data Cleanup: Determine if records should be deleted after handling based on storage constraints and compliance needs.

Output Requirements

  • Provide architectural recommendations for the storage choice.
  • Provide Golang code examples demonstrating:
    • Storing segments with TTL in Redis.
    • Subscribing to expiration events (e.g., Keyspace notifications).
    • Handling the partial processing logic in the service layer.

Triggers

  • design storage for SMPP segments with validity time
  • handle expired messages without polling in Golang
  • process partial SMPP segments on deadline
  • Redis keyspace notifications for message expiration
  • Golang microservice for high throughput SMS segments

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.